Design pattern:Fabrique abstraite

De WIKI.minetti.org
Aller à : navigation, rechercher

But

Permettre l'implémentation d'un groupe de fabriques particulières ayant une thématique commune.

Diagramme de classes

FabriqueAbstraite.gif

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