Menu

Factory Method – wzorce projektowe

28 grudnia 2017 - .NET, Wzorce projektowe

Ten wpis będzie dotyczył kolejnego ze wzorców projektowych z kategorii wzorców konstrukcyjnych – Matoda Wytwórcza (ang. Factory Method).

Factory Method

Wzorzec ten udostępnia interfejs do tworzenia obiektów, gdzie samym utworzeniem zajmują się podklasy.

Składowe:

  1. Product – jest interfejsem obiektów generowanych przez metodę wytwórczą. Może być interfejsem lub klasą abstrakcyjną.
  2. ConcreteProduct – implementuje interfejs klasy Product.
  3. Creator – zawiera w sobie bazową metodę wytwórczą która zwraca domyślny typ produktu, czyli obiekt typu Produkt. Można tu również zaimplementować rozwiązanie pozwalające na wybranie konkretnego kreatora w zależności od podanego parametru.
  4. ConcreteCreator – przesłania bazową metodę wytwórczą w kreatorze. Zwraca pożądany obiekt typu ConcreteProdukt.

Poniżej znajduje się diagram obrazujący jak to mniej więcej wygląda

Factory Method UML class diagram.svg
By Trashtoy – My own work written with text editor., Domena publiczna, Link

Zastosowanie:

Przykładowy kod

  1. Tworzymy sobie część odpowiedzialną za nasz Product i ConcreteProdukt, czy interfejs IArchive oraz klasy ZipArchive i RarArchive
  2. Teraz kolej na nas Creator. Będzie on również posiadał statyczną metodę wybierającą ConcreteProduct na podstawie przekazanego parametru. W tym przypadku enuma ArchiveType
  3. Nadeszła kolej na nasze ConcreteProducts, które przesłaniają metodę metody wytwórczej
  4. Nie pozostaje nic innego jak sprawdzenie, czy wszystko działa tak jak tego oczekujemy

Wynikiem w konsoli będzie:

I chooses RAR library to make a rar file
———————–
I chooses ZIP library to make a zip file

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *