[JAVA] Factory Method Pattern

Factory Method Pattern In Fällen, in denen keine neuen Instanzen erstellt werden können, z. B. in Fällen, in denen Pakete unterschiedlich sind, verwenden Sie das Factory-Methodenmuster, um Instanzen zu erfassen
Die abstrakte Factory-Klasse definiert das zu instanziierende Skelett Eine Unterklasse der Factory-Abstract-Klasse erstellt eine tatsächliche Instanz Der Benutzer erhält eine Instanz über die Factory-Abstract-Klasse

Design Pattarm MENU
Diese Seite hat die folgende Struktur Wenn Sie nur den Code überprüfen möchten, fliegen Sie als Zweiter

Fall, in dem new keine Instanz erstellen kann

Überprüfen Sie mit der folgenden Klassenstruktur

Paketnamen Klasse Zugriffsmodifikator Erläuterung
Default user(Main.class) public Überprüfen Sie den Betrieb
implement sam.class Default nichts Besonderes

java:package.implement.sam


package implement;

class sam{}

user(Main.class)


import implement.*;
public static void main(String[] args){
  sam s = new sam();
}

Ergebnis

python


sam cannot be resolved to a type

Weil der Zugriffsmodifikator von sam.class Standard ist Nur über Klassen zugänglich, die zum Paket gehören

Daher ist sam.class völlig unabhängig vom Benutzer und kann nicht berührt werden. Verwenden Sie in solchen Fällen beispielsweise das Factory Method Pattern

Bestätigung des Factory-Methodenmusters

Überprüfen Sie mit der folgenden Konfiguration

Paketnamen Zugriffsmodifikator Klasse import Erläuterung
framework public abstract samFramework.class Keiner Abstrakte Klasse von Objekten, die vom Benutzer verwendet werden
framework public abstract factoryFramwork.class Keiner Abstrakte Klasse, die die Instanziierung definiert
implement Default sam.class import framework.samFramework Benutzer ist Sam()Verwenden Sie eine Instanz von
implement public factory.class import framework.samFramework
import framework.factoryFramework
sam.Erstellen Sie eine Instanz der Klasse
Default public user(Main.class) import framework.samFramework
import framework.factoryFramework
import implement.factory
samFramework.class und factoryFramework.class Ich habe nichts importiert Außerdem kann der Benutzer (Main.class) sam () nicht importieren. Sam-Instanz kann nicht mit new sam () abgerufen werden

Lass uns eine Klasse machen

samFramework.class


package framework;

public abstract class samFramework{
  public abstract void show();
}

factoryFramework.class


package framework;

public abstract class factoryFramework{
  public abstract samFramework newInstance();
}

sam.class


package implement;
import framework.samFramework;

class sam extends samFramework {
  public void show(){System.out.println("sam");}
}

factory.class


package implement;
import framework.factoryFramework;
import framework.samFramework;

public class factory extends factoryFramework {
  public samFramework newInstance(){return new sam();}
}

user(Main.class)


import framework.factoryFramework;
import framework.samFramework;
import implement.factory;

class Main {
public static void main(String[] args){
  factoryFramework factory = new factory();
  samFramework sam = factory.newInstance();
  sam.show();
}}

Recommended Posts

Factory Method Pattern
Factory Method Muster
Entwurfsmuster ~ Fabrikmethode ~
abstraktes Fabrikmuster
Abstraktes Fabrikmuster
Muster der Vorlagenmethode
Muster der Vorlagenmethode
Java-Anfänger-Entwurfsmuster (Factory-Methodenmuster)
Entwurfsmuster ~ Abstrakte Fabrik ~
statische Werksmethode Teil 1
Entwurfsmuster ~ Vorlagenmethode ~
Einführung in Entwurfsmuster (Factory-Methode)
C # gekautes Designmuster: TemplateMethod
Erinnerungsmuster
Was für eine Strategiemusterfabrik, kein Staat
Vermittlermuster
Iteratormuster
Zusammengesetztes Muster
Java-Methode
Beobachtermuster
Java (Methode)
Builder-Muster
Brückenmuster
Befehlsmuster
Zusammenführungsmethode
Strategiemuster
Iteratormuster
Besuchermuster
Adaptermuster
Kartenmethode
Methode einschließen
Proxy-Muster
Strategiemuster
Zusammengesetztes Muster
Abstrakte Methode
Methode initialisieren
Singleton-Muster
Listenmethode
Singleton-Muster
Prototypmuster
setzt Methode
[Entwurfsmuster] Allgemeine Logik mit der Vorlagenmethode
Java-Methode
Klassenmethode
Fassadenmuster
Save! -Methode
getParameter-Methode
[Java] -Methode
Dekorationsmuster
Fliegengewichtsmuster
Dekorateur Muster
Vermittlermuster
private Methode
Fassadenmuster
Besuchermuster
Schienenmethode
Brückenmuster
[Java] -Methode
Methodenname der statischen Factory-Methode, die aus Java 8 gelernt wurde