Factory-Musterklassifizierung:
1) Einfaches Factory-Muster (Simple Factory)
2) Factory-Methodenmuster (Factory Methode)
3) Abstraktes Fabrikmuster (Abstrakte Fabrik)
Empfohlene verwandte Video-Tutorials: Java-Lernen
Einfaches Fabrikmuster
Einfaches Factory-Muster wird auch als statisches Factory-Methodenmuster bezeichnet. Aus der Umbenennung ist ersichtlich, dass dieser Modus sehr einfach sein muss. Sein Zweck ist einfach: eine Schnittstelle zum Erstellen von Objekten zu definieren.
1) Fabrikrolle: Dies ist der Kern dieses Modells und enthält bestimmte Geschäftslogik und Beurteilungslogik. In Java wird es oft durch eine konkrete Klasse implementiert.
2) Abstrakte Produktrolle: Es handelt sich im Allgemeinen um die übergeordnete Klasse, die von einem bestimmten Produkt oder der implementierten Schnittstelle geerbt wird. Es wird in Java über eine Schnittstelle oder eine abstrakte Klasse implementiert.
3) Spezifische Produktrolle: Das von der Factory-Klasse erstellte Objekt ist eine Instanz dieser Rolle. Implementiert durch eine konkrete Klasse in Java.
Abstract Factory Pattern:
Der Zweck des Abstract Factory Pattern besteht darin, dem Kunden eine Schnittstelle zur Erstellung von Produktobjekten in mehreren Produktfamilien bereitzustellen
Und die folgenden Bedingungen müssen erfüllt sein, um das abstrakte Fabrikmuster zu verwenden:
1) Es gibt mehrere Produktfamilien im System und das System kann jeweils nur eine der Produktfamilien konsumieren.
2) Produkte, die zur gleichen Produktfamilie gehören, sollten entsprechend verwendet werden.
Die verschiedenen Rollen des abstrakten Fabrikmusters (die gleichen wie die der Fabrikmethode):
1) Abstrakte Fabrikrolle: Dies ist der Kern der Fabrik Methodenmuster, das sich auf die Anwendung bezieht Nichts zu tun. Es handelt sich um die Schnittstelle, die eine bestimmte Factory-Rolle implementieren muss, oder um die übergeordnete Klasse, die geerbt werden muss. In Java wird es durch abstrakte Klassen oder Schnittstellen implementiert.
Codepräsentation:
实例:面条工厂 实现工厂模式 ···
Das Folgende zeigt einige Nudel-Codeteile
package am2; public class Daoxiaomian extends Miantiao{ public void show(){ System.out.println("我生产刀削面"); } }
Das Folgende zeigt einige Codeteile für den Werksmodus
package am2; /** * 工厂模式 * @author hadoop * */ public class Factory { public static final String XIMIANTIAO="ximiantiao"; public static final String KUANMIANTIAO="kuanmiantiao"; public static final String DAOXIAOMIAN="daoxiaomian"; public static Miantiao getMiantiao(String name){ Miantiao miantiao = new Miantiao(); switch(name){ case "ximiantiao": miantiao = new Ximiantiao(); break; case "kuanmiantiao": miantiao = new Kuanmiantiao(); break; case "daoxiaomian": miantiao = new Daoxiaomian(); break; } return miantiao ; } }
Das Folgende zeigt einige Lasagne Codeteile
package am2; public class Kuanmiantiao extends Miantiao{ public void show(){ System.out.println("我生产宽面条"); } }
Das Folgende zeigt einige Instanziierungscodeteile.
package am2; public class Miantiao { public void show(){ } }
Das Folgende zeigt einige Spaghetti-Codeteile.
package am2; public class Ximiantiao extends Miantiao{ public void show(){ System.out.println("我生产细面条"); } }
Das Folgende zeigt einige Testcodeteile für den Werksmodus. Holen Sie sich verschiedene Nudeln aus der Fabrik Codestück
package am2; /** * 工厂模式,我想从工厂获取到各种面条 * * @author hadoop * */ public class Test { public static void main(String[] args) { Miantiao miantiao = Factory.getMiantiao(Factory.XIMIANTIAO); miantiao.show(); Miantiao miantiao1 = Factory.getMiantiao(Factory.KUANMIANTIAO); miantiao1.show(); Miantiao miantiao2 = Factory.getMiantiao(Factory.DAOXIAOMIAN); miantiao2.show(); } }
Empfohlene verwandte Artikel: Einführung in die Java-Sprache
Das obige ist der detaillierte Inhalt vonDetaillierte Einführung in Factory-Muster in Java. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!