Heim  >  Artikel  >  Java  >  JAVA-Entwurfsmuster: Zusammenfassung und Unterschiede zwischen einfacher Fabrik, Fabrikmethode und abstrakter Fabrik.

JAVA-Entwurfsmuster: Zusammenfassung und Unterschiede zwischen einfacher Fabrik, Fabrikmethode und abstrakter Fabrik.

高洛峰
高洛峰Original
2016-12-15 14:26:341568Durchsuche

Einfache Fabrik, Fabrikmethode und abstrakte Fabrik sind alles Schöpfungsmuster in Entwurfsmustern. Seine Hauptfunktion besteht darin, uns dabei zu helfen, den Instanziierungsteil des Objekts zu extrahieren, die Systemarchitektur zu optimieren und die Skalierbarkeit des Systems zu verbessern.

Dieser Artikel ist eine Zusammenfassung meiner Untersuchung dieser drei Modi und meines Verständnisses der Unterschiede zwischen ihnen.

Simple Factory

Factory-Klassen im Simple-Factory-Muster verwenden im Allgemeinen statische Methoden, um verschiedene Objektinstanzen basierend auf den empfangenen Parametern zurückzugeben.

Es kann nicht erweitert werden, ohne den Code zu ändern.

JAVA-Entwurfsmuster: Zusammenfassung und Unterschiede zwischen einfacher Fabrik, Fabrikmethode und abstrakter Fabrik.

Factory-Methode

Die Factory-Methode stellt für jedes Produkt eine Factory-Klasse bereit. Verschiedene Produktinstanzen werden über verschiedene Factory-Instanzen erstellt.

In derselben hierarchischen Struktur kann jedes Produkt hinzugefügt werden.

JAVA-Entwurfsmuster: Zusammenfassung und Unterschiede zwischen einfacher Fabrik, Fabrikmethode und abstrakter Fabrik.

Abstract Factory

Abstract Factory reagiert auf das Konzept der Produktfamilie. Beispielsweise möchte möglicherweise jedes Automobilunternehmen gleichzeitig Autos, Lastwagen und Busse produzieren, sodass jede Fabrik über eine Methode zur Herstellung von Autos, Lastwagen und Bussen verfügen muss.

Es entstand als Reaktion auf das Konzept der Produktfamilie. Es ist einfach, neue Produktlinien hinzuzufügen, aber es ist unmöglich, neue Produkte hinzuzufügen.

JAVA-Entwurfsmuster: Zusammenfassung und Unterschiede zwischen einfacher Fabrik, Fabrikmethode und abstrakter Fabrik.

Zusammenfassung

★Im Fabrikmuster ist die Fabrikklasse das Wichtigste, nicht die Produktklasse. Produktklassen können in vielen Formen vorliegen, einschließlich mehrerer Vererbungsebenen oder einer einzelnen Klasse. Es sollte jedoch klar sein, dass die Factory-Modus-Schnittstelle nur einen Instanztyp zurückgibt. Dies muss beim Entwerfen von Produktklassen beachtet werden. Es ist am besten, eine übergeordnete Klasse oder eine gemeinsam implementierte Schnittstelle zu haben.

★Bei Verwendung des Factory-Musters muss die zurückgegebene Instanz von der Factory erstellt werden und darf nicht von anderen Objekten abgerufen werden.

★Die vom Factory-Modus zurückgegebene Instanz muss nicht neu erstellt werden, und es ist auch möglich, eine von der Factory erstellte Instanz zurückzugeben.

Unterschiede

Einfache Fabrik: Wird zur Herstellung beliebiger Produkte in derselben Ebenenstruktur verwendet. (Sie können nichts gegen das Hinzufügen neuer Produkte unternehmen.)

Fabrikmodus: Wird zur Herstellung fester Produkte in derselben hierarchischen Struktur verwendet. (Unterstützt das Hinzufügen beliebiger Produkte)
Abstrakte Fabrik: Wird zur Herstellung aller Produkte verschiedener Produktfamilien verwendet. (Sie können nichts gegen das Hinzufügen neuer Produkte unternehmen; das Hinzufügen von Produktfamilien wird unterstützt)

Die oben genannten drei Factory-Methoden bieten unterschiedliche Unterstützungsniveaus in den beiden Richtungen der hierarchischen Struktur und der Produktfamilie. Überlegen Sie also, welche Methode je nach Situation zum Einsatz kommen sollte.


Weitere JAVA-Entwurfsmuster: Zusammenfassung und Unterschiede zwischen einfacher Fabrik, Fabrikmethode und abstrakter Fabrik. Weitere Artikel finden Sie auf der chinesischen PHP-Website.

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn