Wie kann ich diesen F # -Code austrocknen? (Fließende Schnittstelle)

8

Das ist also der nasseste Code, den ich je geschrieben habe. Aber es ist nützlich, was nervig ist. Der Grund für alle Wiederholungen ist, dass ich die Schnittstelle fließend halten möchte. Wenn ich die Basisklasse erweitert habe (was in diesem Fall View ist), würde es nur eine Instanz von View zurückgeben, was mich daran hindern würde, etwas wie

zu machen %Vor%

, weil die Eigenschaft Label.Text nicht von der Basisklasse View implementiert wird.

Also hier ist meine fließende Oberfläche. Bereit machen. Es ist hässlich und sich wiederholend. Aber es funktioniert auch und ist bequem zu bedienen.

Habe ich einen offensichtlichen Weg verpasst, es auszutrocknen?

%Vor%

AKTUALISIEREN

Dank Ihrer Hilfe ist die Antwort ja, ich habe etwas Offensichtliches vermisst. Wie TheQuickBrownFox erklärt, wenn ich die fließende Oberfläche zu etwas der Form

ändere %Vor%

Dann kann das Monster, das du oben siehst, in seiner Gesamtheit durch

ersetzt werden %Vor%

Diese Code-Löschung ist in der Tat sehr erfreulich.

    
Rob Lyndon 02.08.2016, 15:07
quelle

1 Antwort

11

Der idiomatische F # -Ansatz für fließende Interfaces besteht nur darin, den Pipe-Forward-Operator |>

zu verwenden %Vor%

Ich denke, Sie können Ihre Funktionssignaturen auch verkürzen, indem Sie flexible Typen :

%Vor%     
TheQuickBrownFox 02.08.2016, 16:19
quelle

Tags und Links