Tous les langages à objet disposent d'un opérateur new, ou équivalent, pour créer des objets. Fort pratique en apparence, cet opérateur recèle des problèmes dont les Pattern Fabrique et Fabrique Abstraite permettent de s'affranchir.
Comme nous le savons, les Design Pattern, ou modèle de conception, sont des lignes directrices, des bonnes pratiques destinées à rendre plus simple et plus sûre la programmation objet. Ces bonnes pratiques ont été définies par des programmeurs expérimentés en POO et qui se sont aperçus que fondamentalement le programmeur objet doit sans cesse résoudre les mêmes problèmes. Les Design Pattern sont répartis en catégories : comportement, structuration et création d'objets. Nous abordons aujourd'hui un modèle classé dans la catégorie création d'objets en nous appuyant sur le langage Java. Il est indéniable que le programmeur objet est en permanence en situation de créer des objets. Mais en quoi est-ce un problème ? Nous disposons pour cela de l'opérateur new (ou équivalent selon le langage). Nous utilisons cet opérateur, les objets sont créés et le tour est joué! En théorie oui c'est aussi simple que cela. Et dans les cas très simples l'approche convient très bien. Mais dès qu'une application devient ne serait-ce qu'un peu compliquée, l'utilisation de l'opérateur new au "coup par coup" conduit à un code spaghetti, difficile à maintenir, ce que théoriquement le paradigme objet devrait éviter et non générer. Tel est le but des Pattern Fabrique et Fabrique Abstraite: rationaliser la création d'objets et donc l'emploi de l'opérateur new.
Frédéric Mazué