Fluent API は最近非常に一般的です。最近、私が扱っているほぼすべてのシステムでそれらを見つけています。ほとんどの場合、それらは読みやすさを向上させますが、時には柔軟性のない仕様に縛られて、それらが構築する仕様の実行時の動作を理解することをほとんど不可能にします. 優れた流暢な API を作成する方法についてコンセンサスはありますか? 流暢な API を使用して構造または仕様を表現する最良の方法は何ですか?
私は最近、 NServiceBus構成クラスの流暢な API で、次の新しいバリアントに気付きました。
class EndpointConfig : IConfigureThisEndpoint, AsA_Server { }
複数のインターフェイスを一種の線形流暢なインターフェイスとして使用します。単純な要件のみを表現しようとしているときに、余分なコードやコンテキストの負担がかからないため、気に入っています。単純な場合はそれで十分です。ただし、複雑な仕様に拡張できるとは思いません。このインターフェイスの使用についてどう思いますか?
C# で使用している他の新しいイディオムは何ですか? それらをどこで使用しますか?彼らの強みは何ですか?どこでそれらを使用しませんか? また、使用しようと考えていたイディオムの長所をどのように評価しますか?