Zusammenfassung
Designmuster ist eine Kunst. Wenn Sie diese Kunst wirklich verstehen, werden Sie feststellen, dass die Welt schöner wird.
Definition
Definieren Sie eine Schnittstelle zum Erstellen eines Objekts. Lassen
Szenarien verwenden
Überall, wo Sie komplexe Objekte verwenden, können Sie den Werksmodus verwenden
Uml
1.. Zusammenfassung Fabrik
Abstract Factory: Wir alle wissen, dass Fabriken im Allgemeinen nur eine Funktion haben, dh Produktion, beispielsweise Geely Automobile Factory, dh Geely Automobile, iPhone -Mobilfunkhersteller usw. Daher kann es auf einfache Weise zusammengefasst werden, dh create ();
2. Spezifische Automobilherstellungsanlagen
Spezifische Automobilfabriken: Verwirkt eine abstrakte Fabrik mit tatsächlichen Prozessen und Methoden für die Herstellung von Autos usw.
3.. Abstraktes Auto
Abstrakte Autos: Wir wissen im Allgemeinen, dass Autos fahren, Musik spielen, navigieren und drehen können, sind häufige Merkmale von Autos.
4. Spezifische Autos
Abstraktes Auto: Betonautos realisieren abstraktes Auto und haben alle Funktionen. Natürlich können verschiedene Autos unterschiedliche Funktionen haben.
Die obige kurze Einführung ist im Grunde genommen, dass bestimmte Automobilfabriken entsprechende Autos wie Audi -Fabriken, Volkswagen Fabriken, Volkswagen -Autos usw. herstellen.
Code Demo
Wir haben die Beziehung zwischen ihnen oben klar verstanden, daher werden wir Code verwenden, um unsere Ideen und Logik in Code zu demonstrieren:
(1) abstrakte Autofabrik
Paket com.zengtao.demo.factory;/*** Abstract Factory*/public Abstract Class Carbactory {public Abstract <T erweitert CAR> T CreateCar (Klasse <T> cla);}(2) spezifische Automobilfabrik
Paket com.zengtao.demo.factory;/*** Audi Factory*/Public Class Audifactory erweitert den Kirz {@Suppresswarnings ("Deaktiviert") @Override public <t erweitert Car> t createCar (Klasse <T> cla) {car car = null; try {car = (car) class.forname (cla.getName ()). newInstance (); } catch (Ausnahme e) {e.printstacktrace (); } return (t) Auto; }}(3) Definieren des abstrakten Auto
Paket com.zengtao.demo.factory; public abstract Class Car {public abstract void Drive (); public abstract void selfagive (); public abstract void PlayMusic ();}(4) spezifisches Auto
(Audi Q3)
Paket com.zengtao.demo.factory; public class audiq3car erweitert Audicar {@Override public void drive () {System.out.println ("audiq3car wurde erfolgreich hergestellt"); System.out.println ("Audiq3Car Drive"); } @Override public void selfagive () {System.out.println ("audiq3car selfagive"); } @Override public void PlayMusic () {System.out.println ("audiq3car selfagive"); } @Override public void PlayMusic () {System.out.println ("audiq3Car PlayMusic"); System.out.println (""); }}(Audi Q5)
Paket com.zengtao.demo.factory; public class audiq5Car erweitert Audicar {@Override public void drive () {System.out.println ("audiq5car wurde erfolgreich hergestellt"); System.out.println ("Audiq5Car Drive"); } @Override public void selfagive () {System.out.println ("audiq5car selfagive"); } @Override public void PlayMusic () {System.out.println ("audiq5car selfagive"); } @Override public void PlayMusic () {System.out.println ("audiq5Car PlayMusic"); System.out.println (""); }}(5) Rufen Sie an
Paket com.zengtao.demo; import com.zengtao.demo.factory.audifactory; import com.zengtao.demo.factory Audifactory (); // Verwenden Sie die Fabrik, um Q3 CAR Audiq3Car audiq3car = audiofactory.createCar (audiq3car.class) zu machen; // Verwenden Sie die Fabrik, um Q5 CAR AudiQ5Car audiq5car = audifactory.createCar (audiq5car.class) zu machen; // Starten Sie mit dem Fahren und Spielen von Musik audiq3car.drive (); audiq3car.playmusic (); Audiq5Car.Drive (); audiq5car.playmusic (); }}
(6) Ergebnisse
Was die oben genannten betrifft, so wird die Fabrikmethode verwendet, um den einfachen Prozess der Herstellung eines Autos zu realisieren.
Erster Punkt:
In der abstrakten Fabrik sehen wir, dass die CreateCar (Class CLA) -Methode, warum wir sie so definieren? Verwenden Sie die Reflexion, um ein bestimmtes Auto zu erstellen. Auf diese Weise müssen unsere verschiedenen Autos nur entsprechende Bedingungen benötigen, können sie hergestellt werden? Es ist also vorteilhaft, auf diese Weise zu schreiben, genau wie viele hat Audi Q3, Q5, A4, A6, A7, A8 und andere Serien.
Zweiter Punkt:
Wenn wir andere Autos wie BMW haben, die auch BMW X1, 320, X5 usw. haben, können wir es auch sehr einfach implementieren, einfach die abstrakte Fabrik implementieren und dann das abstrakte Auto im spezifischen Auto implementieren, und die Erweiterung ist ebenfalls sehr bequem.
Zusammenfassen
Es ist fast Zeit, hier aus der abstrakten Fabrik herauszukommen. Das Factory -Methode -Modell ist ein relativ einfaches und gutes Designmodell.
Es gibt aber auch Nachteile, wie z.
Wenn es sich jedoch nicht um ein Auto, sondern um ein Mobiltelefon handelt, müssen Sie alles schreiben, was dazu führt, dass viele Klassen angezeigt werden, ob das Factory -Methodenmodell übernommen oder basierend auf den Anforderungen entscheidet.
HINWEIS: Wenden Sie keine Entwurfsmuster aus. Natürlich werden die Fabrikmethodenmuster häufig verwendet, wie z.
Das obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, es wird für das Lernen aller hilfreich sein und ich hoffe, jeder wird Wulin.com mehr unterstützen.