2010-09-04 10 views
6

Tại sao chúng ta không thể thực hiện các bước xây dựng khác nhau trong bản thân hàm tạo. nếu các bước xây dựng lấy các đối số tại sao chúng không thể được cung cấp làm đối số cho hàm dựng và được sử dụng bên trong hàm tạo để tạo đối tượng.Tại sao mô hình Builder tốt hơn một Constructor với các đối số trong đối tượng của lớp được tạo ra?

AFAIK, trong mẫu Trình tạo, khách hàng tạo đối tượng cụ thể; thì lợi thế của việc sử dụng một trình xây dựng thay vì một Constructor với các đối số trong đối tượng của lớp được tạo ra là gì?

Trả lời

5

Oh! Tôi hiểu rồi. Tôi đã nhìn vào ví dụ Wikipedia và nhận ra lý do tại sao Builder là hữu ích. Nó rất hữu ích, khi máy khách không biết các đối số nào truyền cho constructor vì nó rất phức tạp và do đó không thể gọi trực tiếp hàm tạo và nhận đối tượng. Do đó, ông yêu cầu sự giúp đỡ từ các Nhà Xây dựng Bê tông, những người biết những gì các đối số để truyền cho các nhà xây dựng và do đó có được đối tượng được tạo ra. Về cơ bản, nếu khách hàng là người chủ yếu sẽ chuyển các đối số cho hàm tạo của Lớp có đối tượng được tạo, thì Trình xây dựng không hữu ích. Nó có lẽ tốt hơn để sử dụng nguyên mẫu. Mặt khác, nếu có một tập hợp nhỏ các đối tượng cụ thể có thể được tạo ra từ lớp bằng cách chuyển các đối số tới hàm tạo (hoặc gọi các bộ định cư) cho lớp đó và nếu chúng là các đối tượng thường được sử dụng thì tốt hơn để gói gọn đối số này đi qua thingy trong lớp Builder và sử dụng chúng để tạo các đối tượng cho bạn.

Các vấn đề liên quan