Introduction aux patterns de construction
Présentation
Les patterns de construction ont pour vocation d’abstraire les mécanismes de création d’objets. Un système utilisant ces patterns devient indépendant de la façon dont les objets sont créés et, en particulier, des mécanismes d’instanciation des classes concrètes.
Ces patterns encapsulent l’utilisation des classes concrètes et favorisent ainsi l’utilisation des interfaces dans les relations entre objets, augmentant les capacités d’abstraction dans la conception globale du système.
Ainsi, le pattern Singleton permet de construire une classe possédant au maximum une instance. Le mécanisme gérant l’accès unique à cette seule instance est entièrement encapsulé dans la classe. Il est transparent pour les clients de cette classe.
Les problèmes liés à la création d’objets
1. Problématique
Dans la plupart des langages à objets, la création d’objets se fait grâce au mécanisme d’instanciation qui consiste à créer un nouvel objet par appel de l’opérateur new paramétré par une classe (et éventuellement des arguments du constructeur de la classe dont le but est de donner aux attributs leur valeur initiale). Un tel objet est donc une instance de cette classe.
Les langages les plus utilisés aujourd’hui comme Java, C++ ou C# utilisent le mécanisme de l’opérateur new.
En Java, une instruction de création d’un objet peut s’écrire ainsi :
objet = new Classe();
Dans certains cas, il est nécessaire de paramétrer la création d’objets. Prenons l’exemple d’une méthode construitDoc qui crée des documents. Elle peut construire des documents PDF, RTF ou HTML. Généralement le type du document à créer est transmis en paramètre à la méthode sous forme d’une chaîne de caractères, ce qui donne le code suivant :
public Document construitDoc(String typeDoc)
{
Document resultat;
if (typeDoc.equals("PDF"))
resultat...