2010-05-26 3 views
2

DSL을 공부하는 동안 유창한 API를 접했습니다.
유창한 API를 많이 검색했습니다 ... 내가 할 수있는 기본적인 결론은 유창한 API가 코드를 유창하게 만들기 위해 메소드 체인을 사용한다는 것입니다.
그러나 나는 이해할 수 없다. 객체 지향 언어에서 우리는 언제나 객체를 생성 할 수 있고 그것에 관련된 메소드를 호출 할 수있다. 그럼 유창한 API는 어떻게 다른가요? 유창한 API가 추가하는 다른 기능은 무엇입니까? 당신이 방법은 (일반적으로 자기 또는 )에 호출되어 그 객체의 상태 변화로 기존의 반환 값을 처리하고있는 객체를 반환 방법을 쓰기 유창 인터페이스와유창한 API가 다른 API와 다른 점은 무엇입니까?

답변

1

. 유창한 인터페이스를 사용하는 Javascript 라이브러리 중 일부를 보면, 하나의 객체와 동일한 방식으로 처리 될 수 있으므로 목록과 null을 처리하는 것이 훨씬 쉽습니다. 유창한 인터페이스의 단점은 전체적인 책임이있는 모 놀리 식 신 오브젝트를 만드는 경향이 있다는 것입니다.

(신 개체 문제로 인해) 사방에 사용되는 것을 원하지 않지만 때로는 좋았습니다.

1

질문에 대한 답변은 원래 Fluent Interface blog post by Martin Fowler입니다. 요점은 유창한 API의 유창함은 메소드 체인뿐만 아니라 도메인 특정 언어의 도메인에서 유래했다는 것입니다.