Будівельники найкорисніші, коли ваш об’єкт потребує великої кількості аргументів / залежностей, щоб бути корисним, або ви хочете дозволити багато різних способів побудови об'єкта.
Зверху в голові я можу уявити, що хтось може захотіти "будувати" об'єкти в 3D-грі, як це:
// Just ignore the fact that this hypothetical god class is coupled to everything ever
new ObjectBuilder(x, y, z).importBlenderMesh("./meshes/foo")
.syncWithOtherPlayers(serverIP)
.compileShaders("./shaders/foo.vert", "./shaders/foo.frag")
.makeDestructibleRigidBody(health, weight)
...
Я можу стверджувати, що цей приклад легше читати за допомогою методів builder, які я створив лише зараз, ніж це було б за додатковими параметрами:
new Object(x, y, z, meshType: MESH.BLENDER,
meshPath: "./meshes/foo",
serverToSyncWith: serverIP,
vertexShader: "./shaders/foo.vert",
physicsType: PHYSICS_ENGINE.RIGID_DESTRUCTIBLE,
health: health,
weight: weight)
...
Зокрема, інформацію, яку містять назви методу builder, слід замінити ще більшою кількістю параметрів, і набагато простіше забути про один параметр у групі тісно пов'язаних параметрів. Насправді, фрагмент шейдера відсутній, але ви цього не помітили, якби не знали його шукати.
Звичайно, якщо ваш об'єкт бере лише один-п’ять аргументів для побудови, немає необхідності втягувати шаблон конструктора, незалежно від того, ви назвали / необов'язково параметри.