4

Fluent API は最近非常に一般的です。最近、私が扱っているほぼすべてのシステムでそれらを見つけています。ほとんどの場合、それらは読みやすさを向上させますが、時には柔軟性のない仕様に縛られて、それらが構築する仕様の実行時の動作を理解することをほとんど不可能にします. 優れた流暢な API を作成する方法についてコンセンサスはありますか? 流暢な API を使用して構造または仕様を表現する最良の方法は何ですか?

私は最近、 NServiceBus構成クラスの流暢な API で、次の新しいバリアントに気付きました。

class EndpointConfig : IConfigureThisEndpoint, AsA_Server { }

複数のインターフェイスを一種の線形流暢なインターフェイスとして使用します。単純な要件のみを表現しようとしているときに、余分なコードやコンテキストの負担がかからないため、気に入っています。単純な場合はそれで十分です。ただし、複雑な仕様に拡張できるとは思いません。このインターフェイスの使用についてどう思いますか?

C# で使用している他の新しいイディオムは何ですか? それらをどこで使用しますか?彼らの強みは何ですか?どこでそれらを使用しませんか? また、使用しようと考えていたイディオムの長所をどのように評価しますか?

4

1 に答える 1

1

以前は、異なる動作を示すメソッドのブール値パラメーターを避けていました。

int ExpensiveComputation(bool useDiskCache)

そしてそれをに変えることを好む

int ExpensiveComputation(CacheType.DiskCache)

私は主にこれを好んでいました。なぜなら、あなたが を呼び出しているとき、についてすべてを知らなければExpensiveComputation(true)が何を意味するのか明確ではないからです。trueExpensiveComputationExpensiveComputation(CacheType.DiskCache)

ただし、名前付きパラメーターでは、最初のパラメーターを使用して、次のように呼び出すことが許容されることがよくありますExpensiveComputation(useDiskCache: true)

于 2010-08-18T04:31:36.817 に答える