Als «builder-pattern» getaggte Fragen

9
Warum benötigen wir eine Builder-Klasse, wenn wir ein Builder-Muster implementieren?
Ich habe viele Implementierungen des Builder-Musters gesehen (hauptsächlich in Java). Alle von ihnen haben eine Entity-Klasse (sagen wir eine PersonKlasse) und eine Builder-Klasse PersonBuilder. Der Builder "stapelt" verschiedene Felder und gibt ein new Personmit den übergebenen Argumenten zurück. Warum benötigen wir explizit eine Builder-Klasse, anstatt alle Builder-Methoden in der PersonKlasse …

1
Ist "StringBuilder" eine Anwendung des Builder-Entwurfsmusters?
Beschränkt sich das Muster "Builder" auf die Adressierung des Anti-Musters "Teleskopkonstruktor", oder kann es auch auf das allgemeinere Problem der komplizierten Erstellung unveränderlicher Objekte angewendet werden? Die StringBuilderKlasse hat das Wort "Builder" im Namen, hat jedoch nichts mit Teleskopkonstruktoren zu tun. Sie hilft uns lediglich dabei, alle Daten zu sammeln, …




4
Ersetzen benannte Argumente das Buildermuster?
Hat das Builder-Muster bei Verwendung einer Sprache, die benannte und optionale Argumente unterstützt, keinen praktischen Nutzen mehr? Erbauer: new Builder(requiredA, requiredB).setOptionalA("optional").Build(); Optionale / benannte Argumente: new Object(requiredA, requiredB, optionalA: "optional");

4
Java: Wie implementiere ich einen Step Builder, für den die Reihenfolge der Setter keine Rolle spielt?
Bearbeiten: Ich möchte darauf hinweisen, dass diese Frage ein theoretisches Problem beschreibt, und mir ist bewusst, dass ich Konstruktorargumente für obligatorische Parameter verwenden oder eine Laufzeitausnahme auslösen kann, wenn die API falsch verwendet wird. Ich suche jedoch nach einer Lösung, die keine Konstruktorargumente oder Laufzeitprüfungen erfordert. Stellen Sie sich vor, …


1
Wie soll ich mit inkompatiblen Konfigurationen mit dem Builder-Muster umgehen?
Dies wird durch diese Antwort auf eine separate Frage motiviert . Das Builder-Muster wird verwendet, um die komplexe Initialisierung zu vereinfachen, insbesondere mit optionalen Initialisierungsparametern. Ich weiß jedoch nicht, wie ich mich gegenseitig ausschließende Konfigurationen richtig verwalten soll. Hier ist eine ImageKlasse. Imagekann aus einer Datei oder aus einer Größe …

3
Warum wird das Builder-Muster oft so implementiert?
Oft sehe ich die Implementierung des Builder-Musters (in Java) folgendermaßen: public class Foo { private Foo(FooBuilder builder) { // get alle the parameters from the builder and apply them to this instance } public static class FooBuilder { // ... public Foo build() { return new Foo(this); // <- this …
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.