책임은 메시지 기반( 아마도 다형성으로 서로 다른 객체가 같은 책임을 수행할 수 있을 것)
협력설명하기 위한 좋은 예시: 서버-클라이언트 모델
메시지는 결국 = 퍼블릭 인터페이스
좋은 인터페이스 = 최소한의 인터페이스와 추상적인 인터페이스
디미터의 법칙 = 낯선 자와 이야기하지 말아라. 인접한 이웃 하고만 말하라
부끄럼타는 코드 = 낮은 결합도
묻지 말고 시켜라 = 원칙을 따르면 밀접하게 연관된 정보와 행동을 함께 가지는 객체를 만들 수 있다.
의도를 드러내는 인터페이스 = 의도를 드러내는 선택자
디미터 법칙의 예외들 → 자료구조는 내부를 보여줘야 좋음. 설계는 트레이드 오프. 결합도와 응집도의 충돌
명령-쿼리 분리 원칙
프로시저 - 부수효과를 발생시킬 수 있지만, 반환값이 없다.
함수- 부수효과를 발생시킬수 없지만, 반환값이 있을 수 있다.
명령-쿼리 분리 원칙 = 오퍼레이션은 부수효과를 발생시키는 명령이거나 부수효과를 발생시키지 않은 쿼리 중 하나.
명령과 쿼리를 분리해서 얻는 이점이란??
쿼리- GET 메서드 같은 느낌, 몇 번을 호출해도 괜찮다. 부수효과, 참조 투명성
함수형 프로그래밍 - 부수 효과가 없는 것 !
위의 원칙들을 지키는 쉬운 방법 = 메시지를 먼저 선택하고, 그 후에 메시지를 처리할 객체를 선택하는 것
'공부기록 > 객체지향' 카테고리의 다른 글
오브젝트 7장 - 객체 분해 (0) | 2022.01.15 |
---|---|
Class Adapter vs Object Adapter (0) | 2021.11.10 |
오브젝트 5장 책임 할당하기 (0) | 2021.10.03 |
오브젝트 4장 - 설계 품질과 트레이드 오프 (0) | 2021.09.15 |
3장 - 역할, 책임, 협력 (0) | 2021.09.14 |