Das Factory-Methodenmuster befasst sich mit der Notwendigkeit, Objekte zu erstellen, ohne die genaue Klasse des zu erstellenden Objekts anzugeben. Dies ist nützlich, wenn Sie mehrere Unterklassen einer Oberklasse haben und die Objekterstellung auf der Grundlage bestimmter Bedingungen oder Parameter an eine bestimmte Unterklasse delegieren möchten.
Das Factory-Methodenmuster stellt eine Schnittstelle zum Erstellen von Objekten in einer Oberklasse bereit, ermöglicht es Unterklassen jedoch, den Typ der zu erstellenden Objekte zu ändern. Dies fördert die lose Kopplung, indem sichergestellt wird, dass der Clientcode mit der Factory-Schnittstelle und nicht direkt mit den konkreten Klassen interagiert.
Ein praktisches Beispiel für das Factory-Methode-Muster ist ein Framework zum Erstellen von Dokumenten. Abhängig von der Art des Dokuments (z. B. PDF, HTML) erstellt eine entsprechende Dokumentenfabrik das Dokumentobjekt mit geeigneten Formatierungen und Funktionen.
Factory-Methodenmuster im Code
java // Product interface public interface Document { void open(); void close(); } // Concrete Product 1 public class PDFDocument implements Document { @Override public void open() { System.out.println("Opening PDF document"); } @Override public void close() { System.out.println("Closing PDF document"); } } // Concrete Product 2 public class HTMLDocument implements Document { @Override public void open() { System.out.println("Opening HTML document"); } @Override public void close() { System.out.println("Closing HTML document"); } } // Creator interface public interface DocumentFactory { Document createDocument(); } // Concrete Creator 1 public class PDFDocumentFactory implements DocumentFactory { @Override public Document createDocument() { return new PDFDocument(); } } // Concrete Creator 2 public class HTMLDocumentFactory implements DocumentFactory { @Override public Document createDocument() { return new HTMLDocument(); } } // Client code public class Client { public static void main(String[] args) { DocumentFactory factory1 = new PDFDocumentFactory(); Document pdfDocument = factory1.createDocument(); pdfDocument.open(); pdfDocument.close(); DocumentFactory factory2 = new HTMLDocumentFactory(); Document htmlDocument = factory2.createDocument(); htmlDocument.open(); htmlDocument.close(); } }
Das obige ist der detaillierte Inhalt vonDas Designmuster der Factory-Methode verstehen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!