Was ist der Unterschied zwischen Fabrikmuster und abstraktem Fabrikmuster?

Inhaltsverzeichnis:

Anonim

Die Hauptunterschied zwischen Fabrikmuster und abstraktem Fabrikmuster ist, dass die Das Fabrikmuster bietet eine Methode zum Erstellen von Objekten, ohne die genaue Klasse anzugeben, die zum Erstellen verwendet wurde, während das abstrakte Fabrikmuster eine Methode zum Kombinieren einer Gruppe einzelner Fabriken bietet, ohne ihre konkreten Klassen anzugeben.

Design Patterns sind die Lösungen für allgemeine Probleme, mit denen Softwareentwickler bei der Entwicklung von Software konfrontiert sind. Sie sind generisch und hängen nicht vom Systemtyp oder der Programmiersprache ab. Darüber hinaus sind sie bewährte Lösungen und bieten Best Practices. Es gibt drei Arten von Entwurfsmustern: schöpferische, strukturelle und verhaltensbezogene. Erstellungsmuster bieten eine Methode zum Erstellen von Objekten, während die Erstellungslogik ausgeblendet wird. Außerdem machen sie das Programm flexibler. Fabrikmuster und abstraktes Fabrikmuster sind zwei solche Gestaltungsmuster.

Abstraktes Fabrikmuster, Fabrikmuster

Was ist Fabrikmuster?

Ein Factory-Muster bietet eine gute Methode zum Erstellen von Objekten. Mit dieser Methode kann der Programmierer Objekte erstellen, ohne die Erstellungslogik offenzulegen. Es ist auch möglich, das neu erstellte Objekt über eine gemeinsame Schnittstelle zu referenzieren. Siehe unten stehendes Programm.

Abbildung 1: Shape-Schnittstelle

Abbildung 2: Rechteckklasse

Abbildung 3: Quadratische Klasse

Abbildung 4: Kreisklasse

Abbildung 5: ShapeFactory-Klasse

Abbildung 6: Hauptklasse

Die Shape-Schnittstelle verfügt über eine abstrakte Methode namens draw. Rechteck, Quadrat und Kreis sind Klassen. Sie implementieren die Shape-Schnittstelle. Daher stellen diese Klassen eine Implementierung für die Methode draw bereit. Die draw-Methode in jeder Klasse hat ihre eigene Implementierung. Die ShapeFacotry-Klasse verfügt über eine Methode namens getShape. Es bekommt eine Schnur. Diese Methode gibt ein Objekt gemäß der empfangenen Zeichenfolge zurück.

In der main-Methode gibt es ein Objekt namens shape. Es ist vom Typ ShapeFactory. Die Methode getShape wird mit diesem Objekt aufgerufen. An sie wird der String „Rectangle“ übergeben. Das zurückgegebene Objekt wird in shape1 gespeichert, das vom Typ Shape ist. Ebenso werden die Strings „SQUARE“ und „CIRCLE“ an getShape übergeben. Die Rückgabeobjekte werden in shape2 und shape3 gespeichert. Jedes Objekt ruft die Draw-Methode auf und die entsprechende Draw-Methode wird gemäß dem übergebenen String ausgeführt.

Das Hauptprogramm verwendet die ShapeFactory-Klasse, um ein Shape-Objekt zu erhalten. Es übergibt die erforderliche Zeichenfolge an ShapeFactory, um den benötigten Objekttyp zu erhalten.

Was ist abstraktes Fabrikmuster?

Abstraktes Fabrikmuster verwendet eine Superfabrik und erstellt andere Fabriken. Es ist auch als a. bekannt Fabrik der Fabriken. In diesem Muster erstellt eine Schnittstelle eine Factory verwandter Objekte, ohne deren Klassen explizit anzugeben. Mit anderen Worten, nachdem die Superfabrik erstellt wurde, kann sie andere Fabriken erstellen. Siehe unten stehendes Programm.

Abbildung 7: Farboberfläche

Abbildung 8: Gelbe Klasse

Abbildung 9: Orange-Klasse

Abbildung 10: Lila Klasse

Abbildung 11: AbstractFactory-Klasse

Abbildung 12: ShapeFactory-Klasse

Abbildung 13: ColorFactory-Klasse

Abbildung 14: FactoryProducer-Klasse

Abbildung 15: Hauptprogramm

Interface Shape und die Klassen Rectangle, Square, Circle sind dieselben wie im vorherigen Abschnitt. Die Farbe ist eine Schnittstelle; es hat eine abstrakte Methode namens fill. Die Klassen Yellow, Orange und Purple implementieren diese Schnittstelle. Daher stellen diese Klassen eine Implementierung für die Fill-Methode bereit. Die Klasse AbstrcatFactory hat zwei Methoden als getShape und getColor. Die ShapeFactory-Klasse erweitert AbstractFacotry. Ebenso erweitert die ColorFactory-Klasse AbstractFactory. Diese Klassen haben die Implementierungen für die Methoden getShape und getColor.

Die FactoryProducer-Klasse verfügt über eine Methode namens getFactory, die ein Objekt vom Typ AbstractFactory zurückgibt. Es gibt ein ShapeFactory-Objekt oder ColorFactory-Objekt oder null zurück, abhängig von der erhaltenen Zeichenfolge. Schließlich verwendet die main-Methode den FactoryProducer, um AbstractFactory zu erhalten, um Fabriken mit konkreten Klassen zu erhalten.

Unterschied zwischen Fabrikmuster und abstraktem Fabrikmuster

Definition

Factory-Muster ist ein Erstellungsmuster, das eine Methode verwendet, um das Problem der Erstellung von Objekten zu lösen, ohne die genaue Klasse des zu erstellenden Objekts angeben zu müssen. Das abstrakte Fabrikmuster hingegen ist ein Erstellungsmuster, das eine Möglichkeit bietet, eine Gruppe einzelner Fabriken zu kapseln, die ein gemeinsames Thema haben, ohne ihre konkreten Klassen anzugeben. Somit erklären diese Definitionen den Hauptunterschied zwischen Fabrikmuster und abstraktem Fabrikmuster.

Verstecken der Konstruktion

Ein weiterer Unterschied zwischen Fabrikmuster und abstraktem Fabrikmuster besteht darin, dass das Fabrikmuster die Konstruktion eines einzelnen Objekts verbirgt, während das abstrakte Fabrikmuster die Konstruktion einer Familie verwandter Objekte verbirgt.

Abschluss

Factory Pattern und Abstract Factory Pattern sind zwei schöpferische Entwurfsmuster. Factory-Muster bietet eine Methode zum Erstellen von Objekten, ohne die genaue Klasse anzugeben, die zum Erstellen verwendet wurde. Im Gegensatz dazu bietet das abstrakte Fabrikmuster eine Methode, um eine Gruppe einzelner Fabriken zu kombinieren, ohne deren konkrete Klassen anzugeben. Daher ist dies der Hauptunterschied zwischen Fabrikmuster und abstraktem Fabrikmuster.

Referenz:

1. "Factory Method Design Pattern". Javatpoint, hier verfügbar.2. „Abstraktes Fabrikmuster.“ Javatpoint, hier verfügbar.

Was ist der Unterschied zwischen Fabrikmuster und abstraktem Fabrikmuster?