Design pattern:Fabrique abstraite
De WIKI.minetti.org
Révision de 7 avril 2016 à 16:26 par Jp (discussion | contributions) (Page créée avec « == But == Permettre l'implémentation d'un groupe de fabriques particulières ayant une thématique commune. == Diagramme de classes == Fichier:FabriqueAbstraite.gif... »)
Sommaire
But
Permettre l'implémentation d'un groupe de fabriques particulières ayant une thématique commune.
Diagramme de classes
Code
public interface AbstractFactory { /** * Méthode de création du produit A */ public AbstractProductA createProductA(); /** * Méthode de création du produit B */ public AbstractProductB createProductB(); }
public class ConcreteFactory1 implements AbstractFactory { /** * Méthode de création du produit A */ public AbstractProductA createProductA() { return new ProductA1(); } /** * Méthode de création du produit B */ public AbstractProductA createProductB() { return new ProductB1(); } }
public class ConcreteFactory2 implements AbstractFactory { /** * Méthode de création du produit A */ public AbstractProductA createProductA() { return new ProductA2(); } /** * Méthode de création du produit B */ public AbstractProductA createProductB() { return new ProductB2(); } }
Exemples
Exemples | Classes | |||||
---|---|---|---|---|---|---|
AbstractFactory | ConcreteFactory | AbstractProductA | ProductA | AbstractProductB | ProductB | |
Obtenir un pilote (produit) d'impression ou d'affichage basse ou haute résolution. | FabRes | FabBRes
FabHRes |
PiloteImp | ImpBRes
ImpHRes |
PiloteAff | AffBRes
AffHRes |