Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Zakres Wzorce projektowe - kreacyjne -Factory Method -Abstract Factory.

Podobne prezentacje


Prezentacja na temat: "Zakres Wzorce projektowe - kreacyjne -Factory Method -Abstract Factory."— Zapis prezentacji:

1 Zakres Wzorce projektowe - kreacyjne -Factory Method -Abstract Factory

2 2 Wzorce kreacyjne Wzorce kreacyjne abstrahują proces tworzenia instancji obiektu. Ukrywają informacje o tym jak obiekt jest tworzony; w efekcie pomagaja uniezależnić system od tego jak obiekty są tworzone i komponowane

3 3 Wzorce Factory Wzorce kreacyjne klas – wykorzystują dziedziczenie do tworzenia instancji – Factory Method Wzorce kreacyjne obiektów skupiają się na delegowaniu tworzenia instancji do innego obiektu – Abstract Factory

4 4 Wzorce Factory Idiom dla tworzenia obiektu – w j. Java operator new Wzorce kreacyjne tworzą nowe obiekty nie używając jawnie new. Można pisać metody tworzące instancje różnych obiektów, które można rozszerzyć do tworzenia instancji nowo-tworzonych obiektów bez zmiany kodu.

5 5 Factory Method: cel Zdefiniować interfejs do tworzenia obiektu; podklasy decydują, której klasy instancję utworzyć. F.M. poleca klasie przekazać tworzenie instancji do podklasy

6 6 Factory Method: wykorzystanie Wykorzystujemy gdy: - klasa nie może określić, które obiekty mają być utworzone

7 7 Factory method: uczestnicy Product – definiuje interfejs typu obiektów tworzonych za pomocą FactoryMethod ConcretProduct implementuje interfejs produktu Creator deklaruje FactoryMethod, która zwraca obiekt typu Product ConcretCreator nadpisuje FactoryMethod, aby zwrócić instancję ConcretProduct

8 8 Factory Method: przykład1

9 9 Factory Method: przykład2

10 10 Factory Method: przykład2 (2) Klasa MazeGame z metodą createMaze()

11 11 Factory Method: przykład2 (3)

12 12 Factory Method: przykład2 (4) Dodajemy metody (factory methods)

13 13 Factory Method: przykład2 (5)

14 14 Factory Method: przykład2 (6) createMaze() – bardziej złożony, ale elastyczny Klasa EnchantedMazeGame Metoda createMaze() z MazeGame jest dziedziczona

15 15 Factory Method: przykład2 (7) Metoda createMaze() z Mazegame przekazuje tworzenie obiektu maze do podklas (działanie wzorca F.M.) Korelacje: Creator => MazeGame ConcreteCreator => EnchantedMazeGame (MazeGame jest też ConcreteCreator) Product => MapSite ConcreteProduct => Wall, Room, Door, EnchantedWall, EnchantedRoom, EnchantedDoor

16 16 Abstract Factory: cel Dostarczyć interfejs dla utworzenia rodziny powiązanych lub zależnych obiektów bez specyfikowania ich konkretnych klas Klasa deleguje odpowiedzialność tworzenia instancji obiektu do innego obiektu (przez kompozycję), a F.M. wykorzystuje dziedziczenie Delegowany obiekt często wykorzystuje F.M. do tworzenia instancji

17 17 Abstract Factory: przykład Narzędzie tworzenia GUI z wieloma look-and-feels

18 18 Abstract Factory: zastosowanie System powinien być niezależny od tego jak są tworzone, komponowane i reprezentowane jego produkty System musi wykorzystać jedną ze zbioru rodziny produktów Rodzina powiązanych produktów produktów jest utworzona do wspólnego wykorzystania

19 19 Abstract Factory: struktura

20 20 Abstract Factory: zastosowanie Zastosowanie do MazeGame – MazeFactory kolekcja factory methods (równocześnie Abstractfactory i Concretefactory)

21 21 Abstract Factory: zastosowanie (1) Metoda createMaze() z klasy MazeGame ma jako parametr MazeFactory

22 22 Abstract Factory: zastosowanie (2) createMaze() deleguje odpowiedzialnośc za tworzenie obiektu labirynt do obiektu MazeFactory

23 23 Abstract Factory: zastosowanie (3) Łatwo rozszerzyć MazeFactory do tworzenia innych

24 24 Abstract Factory: konsekwencje Izoluje klientów od implementacji konkretnych klas Łatwa wymiana rodziny produktów, ponieważ poszczególna konkretna fabryka może wspomagać rodzinę produktów Wspomaga wykorzystanie produktów z jednej rodziny - nowy rodzaj produktu wymaga zmiany interfejsu Abstractfactory

25 25 Abstract Factory: implementacja Aplikacje typowo wykorzystują jedną instancję konkretnej fabryki Wykorzystać w tym celu wzór Singleton


Pobierz ppt "Zakres Wzorce projektowe - kreacyjne -Factory Method -Abstract Factory."

Podobne prezentacje


Reklamy Google