자율성
- 타인이 아닌 자기 자신이 행동을 하는 특성
자율적인 책임
- 요청을 자신의 판단에 처리하는 것
- 자율적인 객체와 유연한 협력 관계가 품질 좌지우지한다.
- 특징
- 어떻게 ( How ) 가 아니라 무엇 ( What ) 을 해야 하는가를 설명
메시지
- 행동을 수행하게 하는 자극제
- 조합 구조
- 수신자 , 메시지 이름, 인자
- ex ) public String hello(String message) {};
- 수신자 , 메시지 이름, 인자
- 어떻게 ( How ) 처리 할지 명시하지 않고 무엇 ( What ) 이 실행되기를 명시
- 조합 구조
메서드
- 메시지 처리를 위한 내부적 선택 방법
다형성
- 서로 다른 객체가 동일한 메시지에 대해 다르게 반응
- 대체 가능성을 보고 설계
- 재사용성
- 유연한 협력 관계 유지
- 확장 가능성
- 대체 가능성을 보고 설계
메시지의 중요
- 메시지를 중심으로 협력을 설계
- 무엇, 어떤 행위 ( What ) / 누가 ( Who ) 사이클
- 어떤 행위를 누가 할 것인지를 결정
- 다른 객체의 도움이 필요시 어떤 메시지가 필요하진 결정
- 책임을 받을 객체 결정
- 어떤 행위를 누가 할 것인지를 결정
- 묻지말고 시켜라
- 캡슐화 특징으로 수신자의 상태에 대해 송신자는 모르고, 상태를 묻지 않고 시켜야 한다.
- 결합도를 낮추고 유연하고 재사용이 가능한 설계를 만들수 있다.
- 메시지를 믿어라
- 메시지를 수신하는 객체가 메시지를 이해할 수 있는지의 여부
인터페이스
- 서로 소통이 안되는 경계지점에서 소통을 할 수 있게 해주는 방법이나 장치
- 특징
- 내부구조나 동작방식은 알 필요가 없다.
- 내부구조, 동작방식을 변경해도 사용자에게 영향을 미치지 않는다.
- 사용자가 변경되도 동일한 인터페이스를 사용해도 문제없다.
- 메시지가 인터페이스를 결정한다.
- 특징
인터페이스와 구현의 분리
- 객체 관점
- 추상적인 인터페이스
- 너무 상세한 메시지는 객체의 자율성을 침해.
- 최소 인터페이스
- 외부에서 사용하지 않는 부분은 감추자.
- 추상적인 인터페이스
- 구현
- 내부 구조의 작동 방식을 말함.
- 분리를 하는 이유
- 변경을 관리하기 위한 것
- 유연한 협력 설계
- 재사용 용이성
- 캡슐화
- 외부로부터 감춤 ( 정보 은닉 )
- 변경을 관리하기 위한 것
책임의 자율성이 협력의 품질을 결정
- 자율적인 책임은 협력을 단순하게 만듬
- 자율적인 책임은 외부 내부를 명확하게 분리
- 책임이 자율적인 경우 책임을 수행하는 내부적인 방법을 변경 하더라도 외부의 영향을 미치지 않음
- 자율적인 책임은 협력이 대상을 다양하게 선택할 수 있는 유연성을 제공
- 객체가 수행한 책임들이 자율적일수록 객체의 역할을 이해하기 쉬움
책임이 자율적일 수록
1. '추상화' 가 된다.
2. '응집도' 가 높아진다.
3. '결합도' 가 낮아진다.
4. '캡슐화' 가 증진된다.
5. '인터페이스와 구현이 명확히 분리' 된다.
6. 설계의 '유연성' 과 '재사용' 이 향상된다.
'Book > 객체지향의 사실과 오해' 카테고리의 다른 글
[Book] 되새김질 (0) | 2022.02.22 |
---|---|
[Book] 3장) 타입과 추상화 (0) | 2022.02.16 |
[Book] 1장) 협력하는 객체 (0) | 2022.02.16 |
[Book] 7장) 함께 모으기 (0) | 2022.02.15 |
[Book] 6장) 객체 지도 (0) | 2022.02.13 |
[Book] 4장) 역할, 책임, 협력 (0) | 2022.02.09 |
[Book] 2장) 이상한 나라의 객체 (0) | 2022.02.07 |