Zpo-11-wyk-Slajd43

Z Studia Informatyczne
Wersja z dnia 17:37, 4 lis 2006 autorstwa Bwalter (dyskusja | edycje)
(różn.) ← poprzednia wersja | przejdź do aktualnej wersji (różn.) | następna wersja → (różn.)
Przejdź do nawigacjiPrzejdź do wyszukiwania

Replace Constructor with Factory Method

Replace Constructor with Factory Method


Przekształcenie to pozwala zmienić sposób tworzenia obiektu pewnej klasy (i jej podklas) z wywołania konstruktora na użycie wzorca Factory Method. Dzięki niemu możliwe jest stworzenie logicznego konstruktora – metody, która, w odróżnieniu od "zwykłego" konstruktora może zachowywać się polimorficznie, a także dokonywać wyboru konkretnej klasy (wśród klas posiadających ten sam typ, np. dziedziczonych). Zwykły konstruktor w momencie wywołania operuje na utworzonym już obiekcie własnej klasy, dlatego takiej możliwości nie posiada. Zatem celem przekształcenia jest zastąpienie konstruktora jako metody tworzenia obiektów przez klientów – wywołaniem metody-fabryki.

Przekształcenie składa się z trzech kroków. Pierwszym jest stworzenie metody-fabryki (czyli zwykle metody statycznej przyjmującej parametry pozwalające dokonać wyboru klasy, i które można przekazać konstruktorowi), która jedynie wywołuje konstruktor. Następnie wywołania konstruktora w kodzie klientów są zastępowane wywołaniami metody-fabryki. Aby uniemożliwić tworzenie obiektów bez pośrednictwa metody-fabryki, należy zadeklarować konstruktor jako prywatny.

Po wykonaniu przekształcenia można rozwijać logikę metody-fabryki: wyposażyć ją w pamięć utworzonych obiektów lub dokonywać w niej wyboru klasy tworzonego obiektu.


<< Poprzedni slajd | Spis treści | Następny slajd >>