使用Builder Pattern時,爲什麼我不應該重用構建器對象來訪問對象配置? 例如:使用Builder模式時,爲什麼我不應該重新使用構建器對象來訪問對象配置?
正常方式:
ObjectA(ObjectBuilder b) {
this.a = b.getA();
}
public Object getA(){
return this.a;
}
但爲什麼我就不能使用這個:
ObjectA(ObjectBuilder b) {
this.builder = b;
}
public Object getA(){
return this.builder.getA();
}
謝謝:)
關於使用構建器的關鍵是要構建不可變對象:構建器是可變的,它構建的事物不是。如果委派給構建器,那麼您的實例會再次變爲可變:任何引用同一個ObjectBuilder實例的人都可以更改您的ObjectA。如果你想要一個可變對象,那麼不需要構建器:只需在你的ObjectA上設置setter。 –
這是一個很好的答案。這是真的,我不希望A在構造函數之後被改變。這就是我首先使用建築師的原因。 –