[JAVA] Entwurfsmuster ~ Fabrikmethode ~

1. Zuallererst

Hier ist eine Zusammenfassung des ** Factory Method-Musters ** im GoF-Entwurfsmuster.

2. Was ist das Factory-Methodenmuster?

3. Beispielklassendiagramm

FactoryMethod.PNG

4. Beispielprogramm

Dies ist ein Programm zum Erstellen eines Personalausweises aus einer Personalausweisfabrik.

4-1. Fabrikklasse

Dies ist die Basisklasse von Factory. Bestimmen Sie, wie eine Instanz erstellt wird.

Factory.java


package framework;

public abstract class Factory {

	public final Product create(String owner) {
        Product product = createProduct(owner);
        registerProduct(product);
        return product;
    }

	protected abstract Product createProduct(String owner);
    protected abstract void registerProduct(Product product);
}

4-2. Produktklasse

Dies ist die Basisklasse für von Factory erstellte Objekte.

Product.java


package framework;

public abstract class Product {
    public abstract void use();
}

4-3. IDCardFactory-Klasse

Eine konkrete Klasse, die die in der Factory-Klasse definierten Methoden implementiert.

IDCardFactory.java


package idcard;
import java.util.ArrayList;

import framework.Factory;
import framework.Product;

public class IDCardFactory extends Factory {

	private ArrayList<String> owners = new ArrayList<String>();

	protected Product createProduct(String owner) {
        return new IDCard(owner);
    }

	protected void registerProduct(Product product) {
		IDCard icCard = (IDCard)product;
		String owner = icCard.getOwner();
		owners.add(owner);
    }

	public ArrayList<String> getOwners() {
        return owners;
    }
}

4-4. IDCard-Klasse

Eine konkrete Klasse, die die in der Produktklasse definierten Methoden implementiert.

IDCard.java


package idcard;
import framework.Product;

public class IDCard extends Product {

	private String owner;

	IDCard(String owner) {
        System.out.println(owner + "Eine Karte machen.");
        this.owner = owner;
    }

	public void use() {
        System.out.println(owner + "Verwenden Sie die Karte.");
    }

	public String getOwner() {
        return owner;
    }
}

4-5 Hauptklasse

Diese Klasse führt die Hauptverarbeitung durch.

Main.java


import framework.*;
import idcard.*;

public class Main {
    public static void main(String[] args) {
        Factory factory = new IDCardFactory();
        Product card1 = factory.create("Yamada");
        Product card2 = factory.create("Suzuki");
        Product card3 = factory.create("Sato");
        card1.use();
        card2.use();
        card3.use();
    }
}

4-6 Ausführungsergebnis

Mach Yamadas Karte.
Ich werde eine Suzuki-Karte machen.
Mach Satos Karte.
Ich werde Yamadas Karte benutzen.
Ich werde Suzukis Karte benutzen.
Ich werde Satos Karte benutzen.

5. Vorteile

Factory / Product befindet sich im Framework-Paket und IDCardFactory / IDCard befindet sich im IDcard-Paket. Das Framework-Paket importiert das IDcard-Paket nicht. Mit anderen Worten, das ** Framework-Paket hat eine ** Form, die nicht vom IDcard-Paket abhängt. Wenn Sie versuchen, ein völlig anderes "Produkt" und "Factory" zu erstellen, müssen Sie den Inhalt des Framework-Pakets nicht ändern.

  1. GitHub

7. Liste der Entwurfsmuster

8. Referenz

Dieser Artikel und das Beispielprogramm wurden basierend auf den folgenden Büchern erstellt.

Es war sehr leicht zu verstehen und ich habe viel gelernt. Vielen Dank. Die detaillierten Erklärungen der Entwurfsmuster und Beispielprogramme sind geschrieben. Schauen Sie sich also auch die Bücher an.

Recommended Posts

Entwurfsmuster ~ Fabrikmethode ~
Factory Method Pattern
Factory Method Muster
Java-Anfänger-Entwurfsmuster (Factory-Methodenmuster)
Entwurfsmuster ~ Abstrakte Fabrik ~
Entwurfsmuster ~ Vorlagenmethode ~
Entwurfsmuster nach Ruby Template-Methode Musternotiz
Einführung in Entwurfsmuster (Factory-Methode)
C # gekautes Designmuster: TemplateMethod
abstraktes Fabrikmuster
Entwurfsmuster ~ Builder ~
Entwurfsmuster ~ Besucher ~
Java-Entwurfsmuster
Entwurfsmuster ~ Proxy ~
Entwurfsmuster ~ Zustand ~
Entwurfsmuster ~ Strategie ~
Entwurfsmuster ~ Singleton ~
Entwurfsmuster ~ Composite ~
Entwurfsmuster (2): Builder
Entwurfsmuster (1): AbstractFactory
Entwurfsmuster ~ Befehl ~
Abstraktes Fabrikmuster
Entwurfsmuster ~ Iterator ~
Entwurfsmuster ~ Fassade ~
Entwurfsmuster ~ Brücke ~
Entwurfsmuster ~ Mediator ~
Muster der Vorlagenmethode
Entwurfsmuster ~ Dekorateur ~
Muster der Vorlagenmethode
Entwurfsmuster ~ Interpreter ~
Entwurfsmuster ~ Beobachter ~
Entwurfsmuster ~ Prototyp ~
Entwurfsmuster ~ Memento ~
Entwurfsmuster ~ Adapter ~
Entwurfsmuster ~ Fliegengewicht ~
[Entwurfsmuster] Allgemeine Logik mit der Vorlagenmethode
C ++ - Entwurfsmuster (TemplateMethod-Muster)
statische Werksmethode Teil 1
Zusammenfassung des GoF-Entwurfsmusters
Zusammenfassung des Java-Entwurfsmusters
Überdenken des Java8-Lambda-Ausdrucks- und Stream-Entwurfsmusters - Muster der Vorlagenmethode -
Entwurfsmuster ~ Verantwortungskette ~
Punkt 51: Signaturen der Entwurfsmethode sorgfältig
[Entwurfsmuster] Java-Kernbibliothek
Entwerfen Sie Muster für häufig verwendete Java-Bibliotheken - Fabrikmuster
Einführung in Design Patterns (Abstract Factory)
Anwendungsbeispiel für Entwurfsmuster (Nr. 1)