많은 측면에서 저는 Fluent 인터페이스의 아이디어를 정말 좋아하지만 C #의 모든 현대적인 기능 (초기화 기, 람다, 명명 된 매개 변수)을 사용하여 "그만한 가치가 있습니까?"라고 생각합니다. 사용하다?". 누구나 유창한 패턴을 사용할 때 자신의 경험이나 의사 결정 매트릭스를 받아 들일 수있는 연습이 아니라면 나에게 줄 수 있습니까?
결론:
지금까지 답변에서 얻은 좋은 경험 규칙 :
- 유창한 인터페이스는 세터보다 더 많은 작업을 수행 할 때 크게 도움이됩니다. 호출은 컨텍스트 통과를 통해 더 많은 혜택을 볼 수 있기 때문입니다.
- 유창한 인터페이스는 유일한 사용 수단이 아니라 API 위에있는 레이어로 생각해야합니다.
- 람다, 이니셜 라이저 및 명명 된 매개 변수와 같은 현대적인 기능을 통해 손쉬운 인터페이스를 통해보다 친숙한 인터페이스를 만들 수 있습니다.
다음은 현대적인 기능이 덜 필요하다고 느끼는 의미의 예입니다. 예를 들어 직원을 만들 수있는 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"
}
});
이 예제에서는 생성자에서 명명 된 매개 변수를 사용할 수도 있습니다.