Pod wieloma względami bardzo podoba mi się pomysł płynnych interfejsów, ale ze wszystkimi nowoczesnymi funkcjami C # (inicjalizatory, lambdy, nazwane parametry) zastanawiam się, czy warto? posługiwać się?". Czy ktoś mógłby dać mi, jeśli nie zaakceptowaną praktykę, przynajmniej własne doświadczenie lub matrycę decyzyjną na temat tego, kiedy zastosować wzór Płynny?
Wniosek:
Kilka dobrych zasad z dotychczasowych odpowiedzi:
- Płynne interfejsy znacznie pomagają, gdy masz więcej akcji niż seterów, ponieważ połączenia korzystają bardziej z przekazywania kontekstu.
- Płynne interfejsy należy uważać za warstwę nad interfejsem API, a nie za jedyny sposób użycia.
- Nowoczesne funkcje, takie jak lambda, inicjalizatory i nazwane parametry, mogą współpracować ze sobą, dzięki czemu płynny interfejs jest jeszcze bardziej przyjazny.
Oto przykład tego, co rozumiem przez nowoczesne funkcje, które sprawiają, że wydaje się mniej potrzebny. Weźmy na przykład (być może kiepski przykład) Płynny interfejs, który pozwala mi stworzyć pracownika, takiego jak:
Employees.CreateNew().WithFirstName("Peter")
.WithLastName("Gibbons")
.WithManager()
.WithFirstName("Bill")
.WithLastName("Lumbergh")
.WithTitle("Manager")
.WithDepartment("Y2K");
Można go łatwo napisać za pomocą inicjatorów, takich jak:
Employees.Add(new Employee()
{
FirstName = "Peter",
LastName = "Gibbons",
Manager = new Employee()
{
FirstName = "Bill",
LastName = "Lumbergh",
Title = "Manager",
Department = "Y2K"
}
});
W tym przykładzie mogłem również użyć nazwanych parametrów w konstruktorach.