Oft muss ich Objekte mit konfigurierbaren Funktionen erstellen.
Angenommen, ich erstelle ein DateIterator
. Die konfigurierbare (n) Option (en) können sein, ob das geschlossene Intervall [start, end]
oder das offene Intervall [start, end)
iteriert werden soll.
Dazu kommen einige Alternativen, die ich als unterlegen betrachte, wie die integer-basierte Konfiguration new DateIterator(Interval.OPEN_END);
oder die eigenschaftsbasierte Konfiguration.
Gibt es noch andere Ansätze? Welchen Ansatz bevorzugen Sie?
Ich würde sagen, dass das Builder-Muster hier sinnvoll ist:
%Vor% Auf diese Weise kann Ihr tatsächlicher DateIterator unveränderlich sein, während der von DateIterator.builder()
zurückgegebene Builder die Konfiguration ausführt.
Obwohl es keine gute Antwort gibt, und es ist weitgehend eine Frage des Geschmacks, folge ich der folgenden Faustregel, mit viel Platz für Ausnahmen, um zu viel Engineering zu vermeiden:
Auch dies ist die Faustregel, die ich benutze, in keiner Weise zwingend, und oft finde ich mich nicht wörtlich, sie zu respektieren.
Tags und Links configuration java design parameter-passing