Wzorce projektowe – Prototyp
Kolejny wzorzec, tym razem Prototyp, uwaga będzie krótko…
Omawiany dziś wzorzec projektowy polega na tworzeniu kopii istniejących obiektów, zamiast tworzyć je ponownie.
Kiedy stosować wzorzec „prototype” ?
Gdy chcemy powtarzać tworzenia bardzo podobnych obiektów.
Czasem wykonanie obiektu danej klasy nie będzie prostym:
$ob = new MeClass();
Czasem musimy zastosować fabrykę aby stworzyć obiekt. Dążę do tego, że tworzenie obiektów, może być bardziej złożone.
Gdy zależy nam na wydajności (czasami).
Co mam na myśli ? Klonowanie instancji jest wydajniejsze tylko wtedy, gdy nasza klasa jest rozbudowana, bardziej złożona. Natomiast dla prostych klas posiadających kilka metod i zmiennych, klonowanie trwa dłużej niż stworzenie nowej instancji.
Jak stosować prototyp
Jeśli powyższe argumenty były dla Ciebie przekonujące, wystarczy powyższy kod zmienić na:
$ob = clone MeClass();
W klasie „MeClass()” można dopisać dodatkową metodę o nazwie „__clone()” zostanie ona wywołana zawsze w momencie klonowania instancji tej klasy.
W trakcie klonowania, konstruktor oczywiście nie jest wywoływany.