多くの点で、Fluentインターフェイスのアイデアは本当に好きですが、C#の最新の機能(初期化子、ラムダ、名前付きパラメーター)のすべてで、「それだけの価値はありますか?」、「これは正しいパターンですか?」つかいます?"。Fluentパターンをいつ使用するかについて、少なくとも自分の経験や意思決定マトリックスを受け入れてもらえますか?
結論:
これまでの回答からのいくつかの良い経験則:
- 呼び出しはコンテキストパススルーの恩恵を受けるため、Fluentインターフェイスはセッターよりもアクションが多い場合に非常に役立ちます。
- 流Fluなインターフェイスは、唯一の使用方法ではなく、APIの上のレイヤーと考える必要があります。
- ラムダ、初期化子、名前付きパラメーターなどの最新の機能は、連携して動作し、流canなインターフェイスをさらに使いやすくします。
必要性を感じさせないモダンな機能の意味の例を次に示します。たとえば、次のような従業員を作成できる(おそらく悪い例の)Fluentインターフェイスを考えてみましょう。
Employees.CreateNew().WithFirstName("Peter")
.WithLastName("Gibbons")
.WithManager()
.WithFirstName("Bill")
.WithLastName("Lumbergh")
.WithTitle("Manager")
.WithDepartment("Y2K");
次のような初期化子で簡単に記述できます。
Employees.Add(new Employee()
{
FirstName = "Peter",
LastName = "Gibbons",
Manager = new Employee()
{
FirstName = "Bill",
LastName = "Lumbergh",
Title = "Manager",
Department = "Y2K"
}
});
この例のコンストラクターで名前付きパラメーターを使用することもできます。