Sommaire

Abstract Factory

La notion de dispatch dynamique est omniprésente dans la programmation orientée objet, et une grande partie des design patterns en sont des cas d’application. Le design pattern Visiteur, par exemple, montre l’utilité d’un double dispatch. Abstract Factory, pour sa part, applique la méthode du dispatch à la construction des objets.

Mais avant de décrire Abstract Factory, parlons de Factory. Même si ces deux termes sont souvent utilisés de manière interchangeable, il existe à l’origine une différence. Le terme Factory désigne toute méthode, tout pattern reposant sur l’idée d’abstraire la création des objets (tel, en un sens, Singleton, qui délègue l’instanciation à une méthode vérifiant si la classe n’a pas déjà été instanciée). L’idée de Factory est de permettre de séparer la responsabilité d’utilisation d’un objet et celle de sa création.

Imaginons par exemple une brique logicielle chargée de faire l’interface entre un document et plusieurs imprimantes fonctionnant différemment. Il est souhaitable que l’interface vue par le document soit la même quelle que soit l’imprimante ciblée : peu importe comment, peu importe l’imprimante, l’important est que le document soit imprimé. Pour ce faire, rien de plus simple : il suffit d’avoir ...