Bei Verwendung eines Builder Pattern Warum sollte ich das Builder-Objekt nicht erneut verwenden, um auf die Objektkonfiguration zuzugreifen? Zum Beispiel:Wenn ich ein Builder-Muster verwende, warum sollte ich das Builder-Objekt nicht wiederverwenden, um auf die Objektkonfiguration zuzugreifen?
Normalweg:
ObjectA(ObjectBuilder b) {
this.a = b.getA();
}
public Object getA(){
return this.a;
}
Aber warum nicht kann ich dies nur verwenden:
ObjectA(ObjectBuilder b) {
this.builder = b;
}
public Object getA(){
return this.builder.getA();
}
Thanks :)
Der ganze Punkt über die Verwendung eines Builders besteht darin, unveränderliche Objekte zu erstellen: Der Builder ist veränderlich, das, was er baut, ist nicht. Wenn Sie an den Builder delegieren, ist Ihre Instanz wieder änderbar: Jeder, der einen Verweis auf die gleiche Instanz von "ObjectBuilder" hat, kann Ihr "ObjectA" ändern. Wenn Sie ein veränderbares Objekt haben möchten, brauchen Sie den Builder nicht: Sie müssen nur Ihre "ObjectA" setzen. –
Das ist eine ziemlich gute Antwort. Es stimmt, ich möchte nicht, dass A nach dem Konstruktor geändert wird. Deshalb habe ich den Erbauer von Anfang an benutzt. –