Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Factory a Strategy jaka jest różnica
Forum PHP.pl > Forum > PHP > Object-oriented programming
flip
Nie rozumeim jaka jest różnica pomiędzy Factory Pattern a Strategy Pattern. Klasy abstrakcyjne, extendowane przez dzieci i w zależności od warunków tworzony zostaje pożądany obiekt. Robią to samo wg mnie.. Jedyną różnicą jaką widze, jest to, że Factory ma statyczną metodę i w niej tworzy obiekty... Tylko o to chodzi?
Zyx
Gdzie Ty się dopatrzyłeś w Strategii mechanizmu tworzenia obiektów, to nie wiem smile.gif.
- Fabryka - tworzy obiekty bez jawnego definiowania, jaka klasa nas interesuje.
- Strategia - umożliwia stosowanie różnych algorytmów o jednolitym interfejsie, dzięki czemu mogą być one prosto wymienialne lub rozbudowywane o nowe.

Przykład: robisz uniwersalny paker do plików. Wiadomo, są różne algorytmy kompresji: ZIP, gZip, Bzip itd. ale robią to samo. Jeśli zastosujesz strategię, stworzysz sobie abstrakcyjny interfejs Pakera, który będzie mógł być implementowany przez konkretne algorytmy, a program będzie trzymać referencję "abstrakcyjnyPaker" wskazującą na właściwy algorytm, którego chcemy użyć. Natomiast fabryka w tym przykładzie może służyć do produkcji obiektów pakera, ale równie dobrze możesz fabrykę olać i robić obiekty strategii ręcznie.
flip
Cytat(Zyx @ 18.08.2010, 18:26:08 ) *
Gdzie Ty się dopatrzyłeś w Strategii mechanizmu tworzenia obiektów, to nie wiem smile.gif.


Dobre pytanie, analizując kod wykorzystujący Strategy podciągnąłem pod niego to, co (jak teraz widzę) nie ma z nim nic wspólnego. W każdym razie Twoja odpowiedź rozwiała moje wątpliwości, wszytko teraz jest jasne jak słońce:) Dzięki.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.