Pattern Builder xây dựng các đối tượng phức tạp từng bước, tách việc xây dựng khỏi biểu diễn. Nó đặc biệt hữu ích cho các đối tượng có nhiều tham số hoặc nhiều phần tùy chọn, tạo ra việc xây dựng đối tượng dễ đọc, linh hoạt thay vì các constructor cồng kềnh.
Vấn đề Builder giải quyết
Các đối tượng có NHIỀU tham số (đặc biệt là tùy chọn) dẫn đến vấn đề:
✗ constructor khổng lồ: new Pizza('large', true, false, true, 'thin', false, ...) →
khó đọc (boolean nào là cái gì?); khó dùng; dễ lỗi
✗ nhiều constructor overload (telescoping constructor) → lộn xộn
→ Builder cung cấp một cách gọn gàng, dễ đọc, từng bước để xây dựng các đối tượng như vậy.
