Éditer sur GitHub

Builder (Monteur)

Problème

Les fabriques traitent principalement l'instanciation de classes en présence d'une hiérarchie.

Le patron de conception Builder (Monteur) s'attaque à l'instanciation de classes avec des états ou relations complexes. Il sera utile pour éviter :

Solution

Dans sa forme originale, le patron de conception monteur préconise de déléguer la complexité de la construction à des instances dédiées (Builder et Director) comme suit :

UML Builder

Source https://en.wikibooks.org/wiki/Computer_Science_Design_Patterns/Builder où un exemple en Java est disponible avec :

Variantes

Absence de Director

En pratique, la distinction ne sera pas toujours faite entre "Director" et "Builder". La terminologie builder est généralisée à la création incrémentale d'objet :

Par exemple, avec un DelaunayTriangulationBuilder implémentant une triangulation de Delaunay :

const builder = new DelaunayTriangulationBuilder();
for ( const point of points ){
  builder.addPoint(point);
}
builder.getTriangles();

Liens utiles