[JAVA] abstraktes Fabrikmuster

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.

Design Pattarm MENU

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
  • Benutzer Enthält die Bedeutung, die andere Entwickler für dieses Muster verwenden

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

abstraktes Fabrikmuster
Abstraktes Fabrikmuster
Entwurfsmuster ~ Abstrakte Fabrik ~
Factory Method Pattern
Factory Method Muster
Entwurfsmuster ~ Fabrikmethode ~
Vorteile der Erzeugung von AbstractFactory-Mustern mit Enum
Einführung in Design Patterns (Abstract Factory)
Java-Anfänger-Entwurfsmuster (Factory-Methodenmuster)
Prototypmuster
Erinnerungsmuster
Was für eine Strategiemusterfabrik, kein Staat
Vermittlermuster
Iteratormuster
Zusammengesetztes Muster
Beobachtermuster
Builder-Muster
Brückenmuster
Befehlsmuster
Builder-Muster
Strategiemuster
Iteratormuster
Besuchermuster
Adaptermuster
Proxy-Muster
Strategiemuster
Zusammengesetztes Muster
Abstrakte Methode
Singleton-Muster
Singleton-Muster
Prototypmuster
Fassadenmuster
Dekorationsmuster
Fliegengewichtsmuster
Dekorateur Muster
Vermittlermuster
Fassadenmuster
Besuchermuster
Brückenmuster