Java: Factory Design-Methodenmuster | Objektorientiertes Design | Designmuster

Veröffentlicht: 2013-06-28

Factory Design-Method Pattern Object Oriented Design

Factory Design Pattern ist eines der Creational Design-Muster und wird häufig in JDK sowie in Frameworks wie Spring MVC und Struts verwendet. Das Factory-Methodenmuster ist ein objektorientiertes Gestaltungsmuster zur Implementierung des Konzepts von Fabriken und befasst sich mit dem Problem der Erstellung von Objekten (Produkten), ohne die genaue Klasse des zu erstellenden Objekts anzugeben. Der Kern dieses Musters besteht darin, „ eine Schnittstelle zum Erstellen eines Objekts zu definieren, aber die Klassen, die die Schnittstelle implementieren, entscheiden zu lassen, welche Klasse instanziiert werden soll. Mit der Factory-Methode kann eine Klasse die Instanziierung auf Unterklassen verschieben „.

Java-Entwurfsmuster

Lassen Sie uns zuerst lernen, wie man Fabrikmuster in Java implementiert. Wir werden 5 Klassen erstellen, um dieses Muster zu implementieren.

  • Superklasse (CrunchfiyCompany.java)
    • Die Superklasse im Fabrikmuster kann eine Schnittstelle, eine abstrakte Klasse oder eine normale Java-Klasse sein. Für unser Beispiel haben wir die Superklasse als abstrakte Klasse mit überschriebener toString() Methode zu Testzwecken.
  • Unterklasse1 (CrunchifyEbay.java)
    • Beachten Sie, dass die Klasse die CrunchfiyCompany-Klasse erweitert.
  • Unterklasse2 (CrunchifyGoogle.java)
    • Beachten Sie, dass die Klasse die CrunchfiyCompany-Klasse erweitert.
  • Factory-Klasse (CrunchifyFactoryPattern.java)
    • Nachdem wir nun Superklassen und Unterklassen bereit haben, können wir unsere Factory-Klasse schreiben.
    • Wir können die Factory-Klasse Singleton beibehalten oder wir können die Methode, die die Unterklasse zurückgibt, statisch beibehalten.
    • Beachten Sie, dass basierend auf dem Eingabeparameter verschiedene Unterklassen erstellt und zurückgegeben werden.
  • Testklasse (CrunchifyFactoryPatternTest.java)
    • Einfaches Test-Client-Programm, das die obige Factory-Musterimplementierung verwendet.

Weitere Must-Reads:

  • Thread-sichere und schnelle Singleton-Implementierung in Java
  • Was ist Daemon-Thread in Java? Beispiel anbei

Andere Beispiele mit Factory Pattern?

  • Die Methoden java.util.Calendar, ResourceBundle und NumberFormat getInstance() verwenden Factory-Muster.
  • valueOf() Methode in Wrapper-Klassen wie Boolean, Integer usw.

Vorteile des Fabrikmusters:

  • Es wird verwendet, wenn wir eine Superklasse mit mehreren Unterklassen haben und basierend auf der Eingabe eine der Unterklassen zurückgeben müssen. Dieses Muster übernimmt die Verantwortung für die Instanziierung einer Klasse vom Clientprogramm an die Factory-Klasse.
  • Das Factory-Muster bietet einen Ansatz für den Code für die Schnittstelle und nicht für die Implementierung.
  • Das Fabrikmuster entfernt die Instanziierung tatsächlicher Implementierungsklassen aus dem Clientcode, wodurch es robuster, weniger gekoppelt und leicht erweiterbar wird. Beispielsweise können wir die Implementierung der PC-Klasse leicht ändern, da das Client-Programm dies nicht weiß.
  • Das Fabrikmuster stellt durch Vererbung eine Abstraktion zwischen Implementierungs- und Clientklassen bereit.

Nachteile:

  • Die Fabrik muss für eine Familie von Objekten verwendet werden. Wenn die Klassen die gemeinsame Basisklasse oder Schnittstelle nicht erweitern, können sie nicht in einer Factory-Designvorlage verwendet werden.

Liste aller Java Web Development, Spring MVC Tutorials.