Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Obiektowe metody projektowania systemów Abstract Factory design pattern (aka. Kit)

Podobne prezentacje


Prezentacja na temat: "Obiektowe metody projektowania systemów Abstract Factory design pattern (aka. Kit)"— Zapis prezentacji:

1 Obiektowe metody projektowania systemów Abstract Factory design pattern (aka. Kit)

2 Wstęp: Abstract Factory – wzorzec kreacyjny pracujący w zakresie obiektowym Intencja – Udostępnić interfejs, służący tworzeniu rodzin powiązanych lub zależnych obiektów bez wyspecyfikowania konkretnej klasy.

3 Plan: Powody utworzenia, motywacja Zastosowanie Przykłady implementacji w C++ Struktura i elementy składowe Konsekwencje użycia Powiązania z innymi wzorcami Bibliografia

4 Powody utworzenia, motywacja Tworzenie obiektów klas produktów należących do tej samej rodziny Potrzeba zmieniania całej wyspecjalizowanej rodziny obiektów, przy zachowaniu tych samych algorytmów Przykład: podmienianie kontrolek dla różnych platform (MFC, Motif)

5 Zastosowanie System powinien być niezależny od tego jak produkty są tworzone, komponowane i reprezentowane. System może używać jednej z wielu rodzin produktów. Potrzebujemy spójnych rodzin, które są zawsze razem.

6 Przykłady implementacji w C++ (z użyciem factory method i ew. singleton) class AbstractFactory { public: AbstractFactory(); // dla singletona to powędruje do private // AbstractFactory* GetFactoryInstance(int* params); // dla singletona // tu używamy FactoryMethod dla każdego produktu virtual Product1* MakeProduct1() { return new Product1; } virtual Product2* MakeProduct2() { return new Product2; } virtual Product3* MakeProduct3(int param1) { return new Product3(param1); } virtual Product4* MakeProduct4(int param1, int param2) { return new Product4(param1, param2); } //private: //static AbstractFactory *instance; // przygotowanie pod singletona };

7 Struktura i elementy składowe

8 Konsekwencje użycia Zalety. Izoluje konkretne klasy. Czyni podmienianie rodzin produktów łatwiejszym. Nakłania do zachowania konsystencji wsród produktów. Ale! Dokładanie produktów do rodzin jest trudne.

9 Powiązania z innymi wzorcami Abstract Factory jest często implementowane z wykorzystaniem Factory Method. Jest to eleganckie i czytelne rozwiązanie. Ale ma wady… Można użyć Prototype, zamiast FM. Konkretne fabryki są często Singletonami

10 Podsumowanie: Klasa Factory pozwala zbudować system w oparciu o funcjonalność rodzin abstrakcyjnych produktów, z drugiej strony tworzyć odmienne realizacje w oddzielnych rodzinach. Czyli mamy wysoce elastyczny i elegancki kod, z oddzieloną implementacją szczegółów od meritum problemu.

11 Bibliografia: Gamma E.,Helm R.,Johnson R., Vlissides J.: Design Patterns: Elements of Reusable Object-Oriented Software, Addison-Wesley, Alexandrescu A.: Modern C++ Design, Addison- Wesley, 2001

12 ...i to by było tyle na dzisiaj!


Pobierz ppt "Obiektowe metody projektowania systemów Abstract Factory design pattern (aka. Kit)"

Podobne prezentacje


Reklamy Google