l'utilisateur obtient l'objet en utilisant uniquement la classe abstraite et l'interface En utilisant Factory Pattern, l'utilisateur n'a pas besoin de connaître les différents objets requis pour la composition de l'objet cible et leurs combinaisons. </ Font>
Vous trouverez ci-dessous l'exemple de code du modèle d'usine abstrait.
La structure de classe est la suivante
classe | Explication |
---|---|
abstract factory.class |
Définir la méthode de création abstraite |
samFactoryA.class | Agrandissez l'usine Générer et combiner les classes de pièces nécessaires pour composer la cible |
samFactoryB.class | Comme ci-dessus |
interface face1 interface face2 |
Interface pour les pièces |
parts1.class ~ parts4.class | Classe de pièces requise pour la composition du produit cible |
user(Main.class) | Vérifiez le fonctionnement |
L'exemple de code ci-dessous utilise deux usines Parce que le motif abstrait d'usine facilite la création de plusieurs usines Il existe une fonctionnalité qui améliore la commodité de l'utilisateur
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