Dieser Artikel beschreibt die Werksmodell -Implementierungsmethode des Java -Entwurfsmusters. Teilen Sie es für Ihre Referenz wie folgt weiter:
Das Werksmodell bietet hauptsächlich eine Übergangsschnittstelle zum Erstellen von Objekten, um den spezifischen Prozess des Erstellens von Objekten zu schützen und zu isolieren, um den Zweck der Verbesserung der Flexibilität zu erreichen.
Das Werksmodell ist in drei Kategorien unterteilt:
1) Einfaches Fabrikmodell: Nicht förderlich für die Erzeugung von Produktreihen;
2) Fabrikmethode: Auch als polymorphe Fabrik bekannt;
3) Abstract Factory -Modell: Auch als Toolbox bekannt und produziert Produktfamilien, ist jedoch nicht für die Erzeugung neuer Produkte förderlich.
1. Einfaches Fabrikmodell
Der einfache Fabrikmodus wird auch als statischer Fabrikmethodenmodus bezeichnet. Durch Umbenennen können Sie sehen, dass dieses Muster sehr einfach sein muss. Sein Zweck ist einfach: Definieren Sie eine Schnittstelle zum Erstellen von Objekten.
Im einfachen Fabrikmodell befindet sich eine Fabrikklasse im Zentrum der Instanziierungsaufrufe an eine Produktklasse, die feststellt, welche Produktklasse so instanziiert werden soll, genau wie ein Verkehrspolizist im Fahrzeugfluss steht und beschließt, das Fahrzeug in welche Richtung zum Fließen freizusetzen. Schauen wir uns die Komposition an:
1) Fabrikrolle: Dies ist der Kern dieses Modells, der bestimmte Geschäftslogik und Beurteilungslogik enthält. In Java wird es oft von einer konkreten Klasse implementiert.
2) Abstrakte Produktrolle: Es handelt sich im Allgemeinen um eine übergeordnete Klasse, die von einem bestimmten Produkt oder einer implementierten Schnittstelle geerbt wird. Implementiert von Schnittstellen oder abstrakten Klassen in Java.
3) Spezifische Produktrolle: Das von der Fabrikklasse erstellte Objekt ist eine Instanz dieser Rolle. Implementiert von einer konkreten Klasse in Java.
2. METHODE METHODE MODELLE
Das Factory -Method -Modell ist die weitere Abstraktion und Förderung des einfachen Fabrikmodells. Im Fabrikmethodemodell wird es nicht mehr von einer Fabrikklasse ermittelt, dass die Produktklasse instanziiert werden sollte. Diese Entscheidung wird der Unterklasse der abstrakten Fabrik übergeben. Schauen wir uns die Komposition an:
1) Abstrakte Fabrikrolle: Dies ist der Kern des Fabrikmethodemusters, es hat nichts mit der Anwendung zu tun. Es ist eine Schnittstelle, dass eine bestimmte Fabrikrolle oder eine übergeordnete Klasse geerbt werden muss. In Java wird es von abstrakten Klassen oder Schnittstellen implementiert.
2) Spezifische Werksrolle: Es enthält Code, der sich auf eine spezifische Geschäftslogik bezieht. Von der Anwendung aufgerufen, um das entsprechende spezifische Produktobjekt zu erstellen.
3) Zusammenfassung Produktrolle: Es ist die übergeordnete Klasse, die von einem bestimmten Produkt oder einer implementierten Schnittstelle geerbt wird. In Java gibt es im Allgemeinen abstrakte Klassen oder Schnittstellen, die sie implementieren.
4) Spezifische Produktrolle: Das von einer bestimmten Werksrolle erzeugte Objekt ist eine Instanz dieser Rolle. Implementiert von Betonklassen in Java.
Das Factory -Methodenmuster verwendet mehrere Unterklassen, die aus der abstrakten Fabrikrolle geerbt wurden, um die "Gottklasse" im einfachen Fabrikmuster zu ersetzen. Wie oben erwähnt, wird der Druck auf das Objekt ausgetauscht. Und dies wird die Struktur flexibel machen - wenn ein neues Produkt (d. H. Das Auto des Nouveau -Riche) generiert wird, solange es gemäß dem Vertrag generiert wird, der durch die abstrakte Produktrolle und die abstrakte Fabrikrolle bereitgestellt wird, kann er vom Kunden verwendet werden, ohne dass ein bestehender Code geändert wird. Es ist ersichtlich, dass die Struktur der Fabrikrolle auch dem Prinzip des Öffnens und Schließens entspricht!
Der Code ist wie folgt:
// Abstract Produktrolle öffentliche Schnittstelle beweglich {void run ();} // Spezifische Produktrolle öffentliche Klasse Ebene implementiert beweglich {@Override public void run () {System.out.println ("Ebene ...."); }} public class Breom implementiert beweglich {@Override public void run () {System.out.println ("Besen ......"); }} // Abstract Factory öffentliche abstrakte Klasse VehicleFactory {Abstract Movable Create ();} // Special Factory Public Class PlaneFactory erweitert VehicleFactory {public movable create () {return New Ebene zurückgeben); }} public class breomfactory erweitert VehicleFactory {public movable create () {return New Broom (); }} // class public class test {public static void main (String [] args) {vactorfactory factory = new breomfactory (); Beweglich m = factory.create (); m.run (); }}3.. Abstraktes Fabrikmuster
Der Code ist wie folgt
// Abstract Factory Class Public Abstract Class AbstractFactory {öffentliches Abstract Vehicle CreateVehicle (); öffentliche abstrakte Waffe Createwapon (); public abstract Food CreateFood ();} // Betonfabrikklasse, wobei Lebensmittel, Fahrzeug, Waffe abstrakte Klassen sind, öffentliche Klasse DefaultFactory erweitert AbstractFactory {@Override public foodfood () {return New Apple (); } @Override öffentliches Fahrzeug createVehicle () {return New Car (); } @Override Public Weapon createeWeapon () {return New AK47 (); }} // Klasse public Class Test {public static void main (String [] args) {AbstractFactory f = new DefaultFactory (); Fahrzeug v = F.CreateVehicle (); v.run (); Waffe W = F.CreateWeapon (); W.Shoot (); Essen a = F.CreateFood (); A.printname (); }}Im abstrakten Fabrikmuster kann das abstrakte Produkt ein oder mehrere sein, wodurch eine oder mehrere Produktfamilien gebildet werden. Bei nur einer Produktfamilie degeneriert das abstrakte Fabrikmuster tatsächlich das Fabrikmethodenmuster.
Zusammenfassen:
(1) Das einfache Fabrikmuster besteht darin, Instanzen anderer Klassen nach einer bestimmten Klasse zu erstellen. Die übergeordnete Klasse ist gleich und die übergeordnete Klasse ist spezifisch.
(2) Das Fabrikmethodenmuster ist, dass es eine abstrakte übergeordnete Klassenklasse gibt, die eine öffentliche Schnittstelle definiert, und die Unterklasse ist für die Generierung konkreter Objekte verantwortlich. Der Zweck davon ist, die Instanziierung der Klasse auf die Unterklasse zu verzögern.
(3) Das abstrakte Fabrikmuster bietet eine Schnittstelle zur Erstellung einer Reihe verwandter oder voneinander abhängiger Objekte, ohne deren spezifische Klassen anzugeben. Es zielt auf hierarchische Strukturen mit mehreren Produkten ab. Das Factory -Method -Modell richtet sich an die Hierarchiestruktur eines Produkts.
Für mehr Java-bezogene Inhalte können Leser, die an dieser Website interessiert sind, die Themen anzeigen: "Java-Datenstruktur und Algorithmus-Tutorial", "Zusammenfassung der Java-Operation DOM-Knoten-Tipps", "Zusammenfassung der Java-Datei- und Verzeichnisoperationstipps" und "Zusammenfassung von Java Cache Operation Tipps" "
Ich hoffe, dieser Artikel wird für Java -Programme aller hilfreich sein.