Benutzer erhält das Objekt nur über die abstrakte Klasse und Schnittstelle Bei Verwendung von Factory Pattern muss der Benutzer nicht über verschiedene Objekte informiert sein, die für die Zusammensetzung des Zielobjekts und deren Kombinationen erforderlich sind. </ Font>
Unten finden Sie den Beispielcode für das abstrakte Factory-Muster.
Die Klassenstruktur ist wie folgt
Klasse | Erläuterung |
---|---|
abstract factory.class |
Definieren Sie die abstrakte Erstellungsmethode |
samFactoryA.class | Erweitern Sie die Fabrik Generieren und kombinieren Sie die Teileklassen, die zum Erstellen des Ziels erforderlich sind |
samFactoryB.class | Das gleiche wie oben |
interface face1 interface face2 |
Schnittstelle für Teile |
parts1.class ~ parts4.class | Für die Zusammensetzung des Zielprodukts erforderliche Teileklasse |
user(Main.class) | Überprüfen Sie den Betrieb |
Der folgende Beispielcode verwendet zwei Fabriken Weil abstraktes Fabrikmuster es einfach macht, mehrere Fabriken zu erstellen Es gibt eine Funktion, die den Komfort des Benutzers verbessert
factory.class
abstract class factory{
String msg;
int len;
factory(String msg){
this.msg = msg;
len =msg.length();
}
abstract String create();
}
samFactoryA.class
class samFactoryA extends factory{
samFactoryA(String msg){super(msg);}
String create(){
String partsA = new partsA().s;
String partsB = new partsB().s;
return partsA+super.msg+partsB;
}}
samFactoryB.class
class samFactoryB extends factory{
samFactoryB(String msg){super(msg);}
String create(){
String partsA = new partsA().s;
String partsB = new partsB().s;
String partsC = new partsC().s;
String partsD = new partsD().s;
return partsA+partsC + super.msg + partsD+partsB;
}}
interface_face1
interface face1{}
class partsA implements face1{String s="<<< ";}
class partsB implements face1{String s=" >>>";}
interface face2{}
class partsC implements face2{String s="[[[ ";}
class partsD implements face2{String s=" ]]]";}
user(Main.class)
public static void main(String[] args){
factory f1 = new samFactoryA("Hello java");
System.out.println(f1.create());
factory f2 = new samFactoryB("HELLO JAVA");
System.out.println(f2.create());
}}
Recommended Posts