Zpo-6-wyk-Slajd9: Różnice pomiędzy wersjami

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
Bwalter (dyskusja | edycje)
Nie podano opisu zmian
 
Bwalter (dyskusja | edycje)
Nie podano opisu zmian
 
Linia 1: Linia 1:
==Remove Parameter==
==Abstract Factory: konsekwencje==


[[Image:zpo-6-wyk-Slajd9.PNG|Remove Parameter]]
[[Image:zpo-6-wyk-Slajd9.PNG|Abstract Factory: konsekwencje]]




Przekształceniem odwrotnym do poprzedniego jest usunięcie parametru z sygnatury metody. Potrzeba jego wykonania pojawia się, gdy parametr taki jest niewykorzystywany wewnątrz metody.
Zastosowanie tego wzorca pozwala w łatwy sposób zmieniać całe rodziny produktów, zmieniając tylko ich fabrykę. Ponadto, struktura wzorca pozwala łatwo wydzielić warstwę abstrakcji i implementacji, i to zarówno w przypadku fabryki, jak i produktu. Szczegóły implementacyjne obu typów klas są więc niewidoczne dla klienta, co przyczynia się do większej elastyczności systemu.


Mechanika przebiega w sposób odwrotny do dodania parametru. Pierwszym krokiem jest sprawdzenie, czy metoda ta nie jest dziedziczona lub pokrywana w innych klasach. Następnie należy zadeklarować nową metodę bez zbędnego parametru i skopiować do niej ciała oryginalnej metody. Kolejnym krokiem jest umieszczenie delegacji z metody oryginalnej do nowej, i kolejne zastępowanie w ten sam sposób odwołań do tej metody, jakie istnieją po stronie klientów. Na koniec również można usunąć starą metodę.
Dodawanie kolejnych rodzin produktów wiąże się z koniecznością zaimplementowania także nowej fabryki, która będzie dostarczać wspomniane produkty. W ten sposób obiekt fabryki i tworzone przez niego obiekty są związane ze sobą i tworzą hermetyczną całość.
 
Należy jednak pamiętać, że dodanie do wzorca kolejnego typu Product jest utrudnione, ponieważ wymaga modyfikacji wszystkich istniejących dotychczas fabryk. Dlatego wzorzec ten stosuje się w sytuacjach, w których zestaw produktów jest zamknięty.
 
Wzorzec ten jest stosowany m.in. w bibliotece Java Swing do reprezentacji tzw. skórek (czyli mechanizmu umożliwiającego szybką zmianę wyglądu interfejsu użytkownika). Wszystkie implementacje okienek, przycisków, list i innych elementów GUI są produkowane przez wybraną fabrykę. Zmiana implementacji tej fabryki oznacza jednoczeną modyfikację zawartości ekranu.




[[zpo-6-wyk-Slajd8 | << Poprzedni slajd]] | [[zpo-6-wyk-toc|Spis treści ]] | [[zpo-6-wyk-Slajd10 | Następny slajd >>]]
[[zpo-6-wyk-Slajd8 | << Poprzedni slajd]] | [[zpo-6-wyk-toc|Spis treści ]] | [[zpo-6-wyk-Slajd10 | Następny slajd >>]]

Aktualna wersja na dzień 11:11, 17 paź 2006

Abstract Factory: konsekwencje

Abstract Factory: konsekwencje


Zastosowanie tego wzorca pozwala w łatwy sposób zmieniać całe rodziny produktów, zmieniając tylko ich fabrykę. Ponadto, struktura wzorca pozwala łatwo wydzielić warstwę abstrakcji i implementacji, i to zarówno w przypadku fabryki, jak i produktu. Szczegóły implementacyjne obu typów klas są więc niewidoczne dla klienta, co przyczynia się do większej elastyczności systemu.

Dodawanie kolejnych rodzin produktów wiąże się z koniecznością zaimplementowania także nowej fabryki, która będzie dostarczać wspomniane produkty. W ten sposób obiekt fabryki i tworzone przez niego obiekty są związane ze sobą i tworzą hermetyczną całość.

Należy jednak pamiętać, że dodanie do wzorca kolejnego typu Product jest utrudnione, ponieważ wymaga modyfikacji wszystkich istniejących dotychczas fabryk. Dlatego wzorzec ten stosuje się w sytuacjach, w których zestaw produktów jest zamknięty.

Wzorzec ten jest stosowany m.in. w bibliotece Java Swing do reprezentacji tzw. skórek (czyli mechanizmu umożliwiającego szybką zmianę wyglądu interfejsu użytkownika). Wszystkie implementacje okienek, przycisków, list i innych elementów GUI są produkowane przez wybraną fabrykę. Zmiana implementacji tej fabryki oznacza jednoczeną modyfikację zawartości ekranu.


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