Computing">
Factory Method
Factory Method
Factory Method
Intention
Le patron Factory Method définit une interface pour la création d’un objet, mais en
laissant à des sous-classes le choix des classes à instancier.
Remarques :
la création d'objets à l'intérieur d'une classe avec la méthode fabrication est toujours
plus flexible que la création d'un objet directement.
En d'autres termes, Factory Method définit l’usine abstraite, qui définit l'interface de
production du produit, mais ne prend pas en charge le produit spécifique, et confie
les tâches de production à différentes usines de classes dérivées. Cela élimine le
besoin de créer des objets en spécifiant le type.
Les classes IPhone, Samsung et l'interface Phone liées au produit restent inchangées.
Classe AbstractFactory : une classe abstraite pour les usines qui fabriquent différents
produits.
public interface AbstractFactory {
Phone makePhone();
}
Cas utilisation :
public class Client {
public static void main(String[] arg) {
AbstractFactory samsungFactory = new
SamsungFactory();
AbstractFactory appleFactory = new AppleFactory();
samsungFactory.makePhone(); // make samsung
phone!
appleFactory.makePhone(); // make iphone!
}
}
Inconvénients
● Chaque ProduitConcret nécessite toujours un CréateurConcret.
● Si une famille de produits doit être étendue, non seulement l'interface, mais
aussi toutes les classes subordonnées du CréateurConcret doivent être
adaptées en conséquence.
Conclusion
Dans cette leçon nous avons présenté le patron Factory Method. Ce patron permet
de créer une instance à partir d'une classe dérivée d'un type abstrait. La classe
exacte utilisée pour produire l'objet n'est donc pas connue par l'appelant.
Le patron Factory Method se substitue ainsi au constructeur de classe habituel pour
détacher la création d’objets des objets eux-mêmes, permettant ainsi de suivre les
principes SOLID.