Design pattern:Fabrique abstraite
De WIKI.minetti.org
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 |
