객체지향의 사실과 오해의 5장 책임과 메시지
의 마지막 부분인 책임의 자율성이 협력의 품질을 결정한다
요약 입니다.
더 나은 설계란?
- 어떤 협력이 다른 협력보다 이해하기 쉽고 변경에 유연하다고 표현
- 객체의 책임이 자율적일수록 협력이 이해하기 쉬워지고 유연하게 변경 가능
- 결과적으로, 책임이 얼마나 자율적인지가 전체적인 협력의 설계 품질을 결정
- 자율적인 책임은 협력을 단순하게 만든다
- 자율적인 책임은 세부적인 사항들을 무시하고 의도를 드러내는 하나의 문장으로 표현함으로써 협력을 단순화
- 책임이 적절하게 추상화
- 자율적인 책임은 모자 장수의 외부와 내부를 명확하게 분리한다
- 협력의 양상을 두 가지 관점으로 분리
- 왕이 모자 장수를 바라보는 외부 관점
- 모자 장수가 책임을 수행하는 방법을 표현하는 내부 관점
- 협력에 참여하기 위해 외부에 노출하는 부분과 책임을 수행하기 위해 내부적으로 선택하는 방법을 명확하게 구분
- 요청하는 객체가 몰라도 되는 사적인 부분이 객체 내부로 캡슐화되기 때문에 인터페이스와 구현이 분리
- 책임이 자율적일 경우 책임을 수행하는 내부적인 방법을 변경하더라도 외부에 영향을 미치지 않는다.
- 책임이 자율적일수록 협력에 의해 수정돼야 하는 범위가 좁아지고 명확
- 변경의 파급효과가 객체 내부로 캡슐화되기 때문에 두 객체 간의 결합도가 감소
- 자율적인 책임은 협력의 대상을 다양하게 선택할 수 있는 유연성을 제공한다
- 책임이 자율적일수록 협력이 좀 더 유연해지고 다양한 문맥에서 재활용
- 설계가 유연해지고 재사용성이 높아진다
- 객체가 수행하는 책임들이 자율적일수록 객체의 역할을 이해하기 쉬워진다.
- 객체가 수행하는 책임들이 자율적이면 자율적일수록 객체의 존재 이유를 명확하게 표현
- 객체는 동일한 목적을 달성하는 강하게 연결된 책임으로 구성
- 책임이 자율적일수록 객체의 응집도를 높은 상태로 유지하는 것이 용이
자율적인 책임으로 인한 장점
- 적절하게 추상화
- 응집도가 높아지고
- 결합도가 낮아지고
- 캡슐화가 증진
- 인터페이스와 구현이 명확히 분리
- 설계의 유연성과 재사용성이 향상
객체지향의 강력함을 누리기 위한 출발점은 책임을 자율적으로 만드는 것이다. 그리고 이것은 개발자가 선택하는 메시지에 따라 달라진다.
Comments