zakres
Download
Skip this Video
Download Presentation
Zakres

Loading in 2 Seconds...

play fullscreen
1 / 25

Zakres - PowerPoint PPT Presentation


  • 108 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