Zakres
Download
1 / 25

Zakres - PowerPoint PPT Presentation


  • 106 Views
  • Uploaded on

Zakres. Wzorce projektowe - kreacyjne Factory Method Abstract Factory. 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.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' Zakres' - linh


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
Zakres
Zakres

  • Wzorce projektowe - kreacyjne

  • Factory Method

  • Abstract Factory


Wzorce kreacyjne
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


Wzorce factory
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


Wzorce factory1
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.


Factory method cel
Factory Method: cel

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


Factory method wykorzystanie
Factory Method: wykorzystanie

  • Wykorzystujemy gdy:

    - klasa nie może określić, które obiekty mają być utworzone


Factory method uczestnicy
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




Factory method przyk ad2 2
Factory Method: przykład2 (2)

  • Klasa MazeGame z metodą createMaze()



Factory method przyk ad2 4
Factory Method: przykład2 (4)

  • Dodajemy metody (factory methods)



Factory method przyk ad2 6
Factory Method: przykład2 (6)

  • createMaze() – bardziej złożony, ale elastyczny

  • Klasa EnchantedMazeGame

  • Metoda createMaze() z MazeGame jest dziedziczona


Factory method przyk ad2 7
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


Abstract factory cel
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


Abstract factory przyk ad
Abstract Factory: przykład

  • Narzędzie tworzenia GUI z wieloma look-and-feels


Abstract factory zastosowanie
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



Abstract factory zastosowanie1
Abstract Factory: zastosowanie

  • Zastosowanie do MazeGame – MazeFactory kolekcja factory methods (równocześnie Abstractfactory i Concretefactory)


Abstract factory zastosowanie 1
Abstract Factory: zastosowanie (1)

  • Metoda createMaze() z klasy MazeGame ma jako parametr MazeFactory


Abstract factory zastosowanie 2
Abstract Factory: zastosowanie (2)

  • createMaze() deleguje odpowiedzialnośc za tworzenie obiektu labirynt do obiektu MazeFactory


Abstract factory zastosowanie 3
Abstract Factory: zastosowanie (3)

  • Łatwo rozszerzyć MazeFactory do tworzenia innych


Abstract factory konsekwencje
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


Abstract factory implementacja
Abstract Factory: implementacja

  • Aplikacje typowo wykorzystują jedną instancję konkretnej fabryki

  • Wykorzystać w tym celu wzór Singleton


ad