공부기록/객체지향

오브젝트 6장 - 메시지와 인터페이스

DGL 2021. 10. 10. 22:09

책임은 메시지 기반( 아마도 다형성으로 서로 다른 객체가 같은 책임을 수행할 수 있을 것)

협력설명하기 위한 좋은 예시: 서버-클라이언트 모델

메시지는 결국 = 퍼블릭 인터페이스

좋은 인터페이스 = 최소한의 인터페이스와 추상적인 인터페이스

디미터의 법칙 = 낯선 자와 이야기하지 말아라. 인접한 이웃 하고만 말하라

부끄럼타는 코드 = 낮은 결합도

묻지 말고 시켜라 = 원칙을 따르면 밀접하게 연관된 정보와 행동을 함께 가지는 객체를 만들 수 있다.

의도를 드러내는 인터페이스 = 의도를 드러내는 선택자

디미터 법칙의 예외들 → 자료구조는 내부를 보여줘야 좋음. 설계는 트레이드 오프. 결합도와 응집도의 충돌

명령-쿼리 분리 원칙

프로시저 - 부수효과를 발생시킬 수 있지만, 반환값이 없다.

함수- 부수효과를 발생시킬수 없지만, 반환값이 있을 수 있다.

명령-쿼리 분리 원칙 = 오퍼레이션은 부수효과를 발생시키는 명령이거나 부수효과를 발생시키지 않은 쿼리 중 하나.

명령과 쿼리를 분리해서 얻는 이점이란??

쿼리- GET 메서드 같은 느낌, 몇 번을 호출해도 괜찮다. 부수효과, 참조 투명성

함수형 프로그래밍 - 부수 효과가 없는 것 !

위의 원칙들을 지키는 쉬운 방법 = 메시지를 먼저 선택하고, 그 후에 메시지를 처리할 객체를 선택하는 것