khi sử dụng Builder Pattern tại sao tôi không nên sử dụng lại đối tượng người xây dựng để truy cập cấu hình đối tượng? Ví dụ:Khi sử dụng một Mẫu Builder tại sao tôi không nên sử dụng lại đối tượng trình xây dựng để truy cập cấu hình đối tượng?
cách bình thường:
ObjectA(ObjectBuilder b) {
this.a = b.getA();
}
public Object getA(){
return this.a;
}
Nhưng tại sao tôi không thể chỉ cần sử dụng này:
ObjectA(ObjectBuilder b) {
this.builder = b;
}
public Object getA(){
return this.builder.getA();
}
Cảm ơn :)
Toàn bộ điểm về cách sử dụng trình xây dựng là xây dựng các đối tượng bất biến: người xây dựng có thể thay đổi được, thứ mà nó xây dựng không phải là. Nếu bạn ủy quyền cho trình xây dựng, cá thể của bạn có thể thay đổi lại: bất kỳ ai có tham chiếu đến cùng một cá thể 'ObjectBuilder' đều có thể thay đổi' ObjectA' của bạn. Nếu bạn muốn có một đối tượng có thể thay đổi được, không cần người xây dựng: chỉ có các bộ định vị trên 'ObjectA' của bạn. –
Đó là một câu trả lời khá hay. Đúng là tôi không muốn A bị thay đổi sau hàm tạo. Đó là lý do tại sao tôi đã sử dụng nhà xây dựng ngay từ đầu. –