Nhà xây dựng là hữu ích nhất khi đối tượng của bạn cần rất nhiều đối số / phụ thuộc là hữu ích hoặc bạn muốn cho phép nhiều cách khác nhau để xây dựng đối tượng.
Ngoài đỉnh đầu, tôi có thể tưởng tượng ai đó có thể muốn "xây dựng" các vật thể trong một trò chơi 3D như thế này:
// 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)
...
Tôi cho rằng ví dụ này dễ đọc hơn với các phương thức xây dựng mà tôi đã tạo ra ngay bây giờ so với các tham số tùy chọn:
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)
...
Cụ thể, thông tin được ngụ ý bởi các tên phương thức của trình xây dựng phải được thay thế bằng nhiều tham số hơn và việc quên một tham số trong một nhóm các tham số liên quan chặt chẽ sẽ dễ dàng hơn nhiều. Trong thực tế, shader mảnh bị thiếu, nhưng bạn sẽ không nhận ra điều đó trừ khi bạn biết tìm nó.
Tất nhiên, nếu đối tượng của bạn chỉ mất một đến năm đối số để xây dựng, thì không cần phải có mẫu xây dựng liên quan, cho dù bạn có tên / tham số tùy chọn hay không.