Wpisany przez Kamil Dworak
środa, 25 sierpnia 2010 18:49
Fabryka abstrakcyjna (ang. abstract factory) - konstrukcyjny wzorzec projektowy. Fabryka pozwala tworzyć całe
rodziny produktów. Mamy zdefiniowany interfejs do tworzenia spokrewnionych obiektów. Występuje tu kompozycja oraz pewne uzależnienie od abstrakcji, a nie klas rzeczywistych. Klient oddzielony jest od implementacji klas, tworzących obiekty. Wzorzec ten łączony jest z
metodą fabrykującą.
Mamy fabrykę komputerów. Produkujemy laptopy i komputery stacjonarne PC. Jak już napisałem wyżej wspomagamy się tutaj wzorcem zwanym metoda fabrykująca. Mamy tutaj główną klasę, klasę abstrakcyjną (po niej dziedziczą szczegółowe fabryki, np. na części do laptopów i części do komputerów PC). Szczegółowe fabryki produkują swoje podzespoły, tworzą nowe obiekty przy pomocy klas rzeczywistych. Klasy implementują odpowiadające im interfejsy. Teraz już tylko składamy komputery i wydajemy (metodo fabrykująca do dzieła!).
Uogólniony diagram:

Diagram odpowiadający załączonemu przykładowi:

Mamy fabrykę komputerów. Produkujemy laptopy i komputery stacjonarne PC. Jak już napisałem wyżej wspomagamy się tutaj wzorcem zwanym metoda fabrykująca. Mamy tutaj główną klasę, klasę abstrakcyjną (po niej dziedziczą szczegółowe fabryki, np. na części do laptopów i części do komputerów PC). Szczegółowe fabryki produkują swoje podzespoły, tworzą nowe obiekty przy pomocy klas rzeczywistych. Klasy implementują odpowiadające im interfejsy. Teraz już tylko składamy komputery i wydajemy (metodo fabrykująca do dzieła!).
Uogólniony diagram:

Diagram odpowiadający załączonemu przykładowi:

- Tworzymy nową fabrykę komputerów.
- Wywołujemy metodę wydajKomputer(String typ) fabryki, załóżmy, że potrzebny nam komputer klasy PC.
- Tworzymy zmienną komputer, wywołujemy dla niej metodę zlozKomputer(typ).
- Teraz sprawdzamy, o jaki komputer nam chodziło, odpalamy konstruktor klasy KomputerPC, który jako parametr przyjmuje nową fabrykę, produkującą podzespoły (fabryka właściwa).
- Po drodze uruchamia się metoda składająca komputer skladanie() (wywołanie w konstruktorze), właśnie ona inicjuje wszystkie pola przy pomocy fabryki.
- Teraz już tylko instalacja oprogramowania. Pakujemy i sprzedajemy.
- Podobnie postępujemy z laptopem.
| Autor | Język programowania | Komentarz | Otwórz | Pobierz | Ocena |
| Kamil Dworak | C# | Visual Studio 2008 | ![]() | ![]() |
![]() ![]() ![]() ![]() / 5 |
| Kamil Dworak | Java | ![]() | ![]() |
![]() ![]() ![]() ![]() / 3 |
Poprawiony: środa, 25 sierpnia 2010 19:03




