Java: Wzorzec metody projektowania fabrycznego | Projektowanie zorientowane obiektowo | Wzorce projektowe

Opublikowany: 2013-06-28

Factory Design-Metod Pattern Projektowanie zorientowane na obiekt

Factory Design Pattern jest jednym z wzorców Creational Design i jest szeroko stosowany w JDK, a także w platformach, takich jak Spring MVC i Struts. Wzorzec metody fabryki jest wzorcem projektowym zorientowanym obiektowo, służącym do realizacji koncepcji fabryk i rozwiązuje problem tworzenia obiektów (produktów) bez określania dokładnej klasy obiektu, który zostanie utworzony. Istotą tego wzorca jest „ Zdefiniuj interfejs do tworzenia obiektu, ale pozwól klasom implementującym interfejs zdecydować, którą klasę utworzyć. Metoda Factory pozwala klasie odroczyć tworzenie instancji do podklas „.

Wzorce projektowe Java

Nauczmy się najpierw, jak zaimplementować wzorzec fabryki w javie. Stworzymy 5 klas, aby zaimplementować ten wzorzec.

  • Superklasa (CrunchfiyCompany.java)
    • Super klasa we wzorcu fabrycznym może być interfejsem, klasą abstrakcyjną lub zwykłą klasą java. W naszym przykładzie mamy superklasę jako klasę abstrakcyjną z nadpisaną metodą toString() do celów testowych.
  • Podklasa 1 (CrunchifyEbay.java)
    • Zauważ, że klasa jest rozszerzeniem klasy CrunchfiyCompany.
  • Podklasa2 (CrunchifyGoogle.java)
    • Zauważ, że klasa jest rozszerzeniem klasy CrunchfiyCompany.
  • Klasa fabryki (CrunchifyFactoryPattern.java)
    • Teraz, gdy mamy gotowe superklasy i podklasy, możemy napisać naszą klasę fabryczną.
    • Możemy zachować klasę Factory Singleton lub metodę zwracającą podklasę jako statyczną.
    • Zauważ, że na podstawie parametru wejściowego tworzona i zwracana jest inna podklasa.
  • Klasa testowa (CrunchifyFactoryPatternTest.java)
    • Prosty program klienta testowego, który wykorzystuje implementację powyższego wzorca fabrycznego.

Inne musi brzmieć:

  • Bezpieczna wątkowo i szybka implementacja singletona w Javie
  • Co to jest wątek demona w Javie? Przykład w załączeniu

Inne przykłady z wykorzystaniem wzorca fabrycznego?

  • Metody java.util.Calendar, ResourceBundle i NumberFormat getInstance() używają wzorca Factory.
  • metoda valueOf() w opakowujących klasach, takich jak Boolean, Integer itp.

Korzyści z wzorca fabrycznego:

  • Jest używany, gdy mamy superklasę z wieloma podklasami i na podstawie danych wejściowych musimy zwrócić jedną z podklas. Ten wzorzec przejmuje odpowiedzialność za tworzenie instancji klasy z programu klienta do klasy fabrycznej.
  • Wzorzec Factory zapewnia podejście do kodu dla interfejsu, a nie implementacji.
  • Wzorzec fabryki usuwa tworzenie instancji rzeczywistych klas implementacji z kodu klienta, czyniąc go bardziej niezawodnym, mniej powiązanym i łatwym do rozszerzenia. Na przykład możemy łatwo zmienić implementację klasy PC, ponieważ program klienta nie jest tego świadomy.
  • Wzorzec fabryki zapewnia abstrakcję między implementacją a klasami klienta poprzez dziedziczenie.

Wady:

  • Fabryka ma być wykorzystywana dla rodziny obiektów. Jeśli klasy nie rozszerzają wspólnej klasy bazowej lub interfejsu, nie można ich używać w szablonie projektu fabryki.

Lista wszystkich tutoriali Java Web Development, Spring MVC.