4 czerwca 2020

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.