podczas korzystania z Builder Pattern dlaczego nie powinienem ponownie użyć obiektu budowniczego, aby uzyskać dostęp do konfiguracji obiektu? Na przykład:Podczas używania wzorca konstruktora, dlaczego nie powinienem ponownie użyć obiektu budowniczego, aby uzyskać dostęp do konfiguracji obiektu?
normalny sposób:
ObjectA(ObjectBuilder b) {
this.a = b.getA();
}
public Object getA(){
return this.a;
}
Ale dlaczego nie można po prostu użyć tego:
ObjectA(ObjectBuilder b) {
this.builder = b;
}
public Object getA(){
return this.builder.getA();
}
Thanks :)
Cały sens używania budowniczego polega na budowaniu niezmiennych obiektów: budowniczy jest zmienny, to, co buduje, nie jest. Jeśli przekazujesz uprawnienia do konstruktora, twoja instancja znów może być zmieniana: każdy, kto ma odniesienie do tego samego wystąpienia 'ObjectBuilder' może zmienić twoje' ObjectA'. Jeśli chcesz zmienić obiekt, nie ma potrzeby budowania: po prostu ustawiaj obiekty na twoim 'ObjectA'. –
To całkiem dobra odpowiedź. To prawda, nie chcę, żeby A zmieniło się po konstruktorze. Właśnie dlatego użyłem budowniczego w pierwszej kolejności. –