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... »)

(diff) ← Version précédente | Voir la version courante (diff) | Version suivante → (diff)
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