유창한 인터페이스를 작성하기 시작한 Martin Fowler는 유창한 인터페이스 (나는 Eric Evans가 그 용어를 만들었다는 사실을 깨닫지 못했다.)에 대해 썼다. 이 기사에서 Martin은 setter가 일반적으로 구성 또는 작업중인 개체의 인스턴스를 반환한다고 말하면서 그는 CQS를 위반한다고 말합니다.유창한 인터페이스가 명령 쿼리 분리 원칙을 위반합니까?
그래서 같은 내 유창 인터페이스 않는 경우중괄호 세계에서 일반적인 규칙은 CommandQuerySeparation의 원리를 따르기 때문에 내가 좋아하는 방법이 무효가 수정이다. 이 컨벤션은 유창한 인터페이스 인 을 방해하므로이 사례에 대한 컨벤션을 중지 할 의향이 있습니다.
myObject
.useRepository("Stuff")
.withTransactionSupport()
.retries(3)
.logWarnings()
.logErrors();
는 CQS이 진정으로 위반인가?
업데이트 로깅 경고 및 오류가 별도의 동작으로 표시되도록 예제를 만들었습니다.
'logWarningsAndErrors'는 무엇을 반환합니까? 그렇지 않다면 정말로 유창한 인터페이스입니까? –
@ M.Babcock이 샘플을 업데이트했습니다. 물론,'logWarningsAndErrors'는 추가 동작을 추가 할 수있는 인터페이스를 반환합니다. –