Le modèle Factory Method répond à la nécessité de créer des objets sans spécifier la classe exacte d'objet qui sera créé. Ceci est utile lorsque vous disposez de plusieurs sous-classes d'une superclasse et que vous souhaitez déléguer la création d'objets à une sous-classe spécifique en fonction de certaines conditions ou paramètres.
Le modèle Factory Method fournit une interface pour créer des objets dans une superclasse, mais permet aux sous-classes de modifier le type d'objets qui seront créés. Cela favorise un couplage lâche en garantissant que le code client interagit avec l'interface d'usine plutôt qu'avec les classes concrètes directement.
Un exemple pratique du modèle Factory Method est dans un cadre de création de documents. En fonction du type de document (par exemple, PDF, HTML), une fabrique de documents correspondante crée l'objet document avec un formatage et des fonctionnalités appropriés.
Modèle de méthode d'usine dans le 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(); } }
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!