Das Hauptunterschied zwischen Fabrikmuster und abstraktem Fabrikmuster ist das Factory Pattern bietet eine Methode zum Erstellen von Objekten, ohne die genaue Klasse anzugeben, mit der es erstellt wurde. Das abstrakte Factory-Muster bietet eine Methode zum Kombinieren einer Gruppe einzelner Fabriken, ohne deren konkrete Klassen anzugeben.
Entwurfsmuster 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 liefern Best Practices. Es gibt drei Arten von Entwurfsmustern: Kreation, Struktur und Verhalten. Kreationsmuster bieten eine Methode zum Erstellen von Objekten, während die Kreationslogik ausgeblendet wird. Darüber hinaus machen sie das Programm flexibler. Fabrikmuster und abstraktes Fabrikmuster sind zwei solcher kreativen Designmuster.
1. Was ist Fabrik Muster
- Definition, Funktionalität
2. Was ist abstraktes Fabrikmuster?
- Definition, Funktionalität
3. Was ist der Unterschied zwischen Fabrikmuster und abstraktem Fabrikmuster?
- Vergleich der wichtigsten Unterschiede
Abstraktes Fabrikmuster, Fabrikmuster
Ein Fabrikmuster bietet eine gute Methode zum Erstellen von Objekten. Mit dieser Methode kann der Programmierer Objekte erstellen, ohne die Erzeugungslogik freizulegen. Es ist auch möglich, das neu erstellte Objekt über eine gemeinsame Schnittstelle zu referenzieren. Siehe unter Programm.
Abbildung 1: Shape Interface
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, die als draw bezeichnet wird. Rechteck, Quadrat und Kreis sind Klassen. Sie implementieren Shape-Schnittstelle. Daher bieten diese Klassen eine Implementierung für die Methodenauslosung. Die Draw-Methode in jeder Klasse hat ihre eigene Implementierung. Die ShapeFacotry-Klasse hat eine Methode namens getShape. Es bekommt eine Schnur. Diese Methode gibt ein Objekt entsprechend der empfangenen Zeichenfolge zurück.
In der Hauptmethode gibt es ein Objekt namens Shape. Es ist vom Typ ShapeFactory. Die getShape-Methode wird mit diesem Objekt aufgerufen. Der String "Rectangle" wird an ihn übergeben. Das zurückkehrende Objekt wird in shape1 gespeichert, die vom Typ Shape ist. Ebenso werden die Zeichenfolgen "SQUARE" und "CIRCLE" an getShape übergeben. Die Rückkehrobjekte werden in shape2 und shape3 gespeichert. Jedes Objekt ruft die draw-Methode auf, und die entsprechende draw-Methode wird entsprechend der übergebenen Zeichenfolge ausgeführt.
Das Hauptprogramm verwendet die ShapeFactory-Klasse, um ein Shape-Objekt abzurufen. Es übergibt die erforderliche Zeichenfolge an ShapeFactory, um den Objekttyp zu erhalten, den es benötigt.
Abstract Factory Pattern verwendet eine Superfabrik und erstellt weitere Fabriken. Es ist auch als bekannt Fabrik der Fabriken. In diesem Muster erstellt eine Schnittstelle eine Factory aus verwandten Objekten, ohne deren Klassen explizit anzugeben. Mit anderen Worten, nachdem die Superfabrik erstellt wurde, können andere Fabriken erstellt werden. Siehe unter Programm.
Abbildung 7: Farbschnittstelle
Abbildung 8: Gelbe Klasse
Abbildung 9: Orange Klasse
Abbildung 10: Violette 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 Rechteck, Quadrat, Kreis sind die gleichen wie im vorherigen Abschnitt. Die Farbe ist eine Schnittstelle; es hat eine abstrakte Methode namens fill. Die Klassen Gelb, Orange und Lila implementieren diese Schnittstelle. Daher stellen diese Klassen eine Implementierung für die Füllmethode bereit. Die AbstrcatFactory-Klasse verfügt über zwei Methoden wie getShape und getColor. Die ShapeFactory-Klasse erweitert AbstractFacotry. In ähnlicher Weise erweitert die ColorFactory-Klasse AbstractFactory. Diese Klassen verfügen über Implementierungen für die Methoden getShape und getColor.
Die FactoryProducer-Klasse hat eine Methode namens getFactory, die ein Objekt vom Typ AbstractFactory zurückgibt. Es gibt ein ShapeFactory-Objekt oder ein ColorFactory-Objekt oder null zurück, abhängig von der Zeichenfolge, die er erhält. Schließlich verwendet die Hauptmethode den FactoryProducer, um AbstractFactory dazu zu bringen, Fabriken konkreter Klassen zu erhalten.
Außerdem verwendet die Hauptmethode FactoryProducer, um ein AbstractFactory-Objekt abzurufen. Es übergibt Informationen wie "RECTANGLE", "SQUARE", "CIRCLE" an AbstractFactory, um den Objekttyp zu erhalten, den es benötigt. Außerdem werden Informationen wie "GELB", "ORANGLE" und "PURPLE" weitergeleitet, um den Objekttyp zu erhalten, den es benötigt.
Factory-Muster ist ein kreatives Muster, das eine Methode verwendet, um mit dem Problem der Erstellung von Objekten umzugehen, ohne die genaue Klasse des Objekts angeben zu müssen, das erstellt wird. Das abstrakte Fabrikmuster dagegen ist ein kreatives Muster, das eine Möglichkeit bietet, eine Gruppe einzelner Fabriken, die ein gemeinsames Thema haben, zu kapseln, ohne ihre konkreten Klassen anzugeben. Somit erklären diese Definitionen den Hauptunterschied zwischen Fabrikmuster und abstraktem Fabrikmuster.
Ein weiterer Unterschied zwischen dem Fabrikmuster und dem abstrakten Fabrikmuster besteht darin, dass das Fabrikmuster die Konstruktion eines einzelnen Objekts verbirgt, während das abstrakte Fabrikmuster die Konstruktion einer Familie verwandter Objekte verbirgt.
Factory Pattern und Abstract Factory Pattern sind zwei kreative Designmuster. Factory Pattern bietet eine Methode zum Erstellen von Objekten, ohne die genaue Klasse anzugeben, in der es erstellt wurde. Im Gegensatz dazu bietet das abstrakte Fabrikmuster eine Methode zum Kombinieren einer Gruppe einzelner Fabriken, ohne deren konkrete Klassen anzugeben. Daher ist dies der Hauptunterschied zwischen dem Fabrikmuster und dem abstrakten Fabrikmuster.
1. "Factory Method Design Pattern". Javatpoint, hier verfügbar.
2. „Abstraktes Fabrikmuster“. Javatpoint, hier verfügbar.