728x90
역할 구현하기

- 역할이 오직 하나의 객체만 표현한다면 구체 클래스를 이용해서 구현할 수 있다.
- 여러 객체에 대체될 수 있고 코드를 공유할 필요가 있다면 추상 클래스를 이용해서 구현할 수 있다.
- 코드를 공유할 필요도 없고 결합도를 낮추기 위한 메시지 수신자의 역할만 명시하기를 원한다면 인터페이스를 이용해서 구현할 수 있다.
절차적인 방식과 객체지향 방식의 차이

- 절차적인 방식으로 설계된 경우에는 피해 속성이 사용될 문맥을 고려하지 않고 추측을 기반으로 모든 필드에 대해 Getter와 Setter를 추가했다.
- 객체지향 방식으로 설계된 경우에는 협력을 제공하는 책임을 먼저 할당했고, 이 책임을 구현하는데 필요한 피해 필드를 나중에 추가했다.
- 협력이라는 문맥을 기반으로 꼭 필요한 메서드만 제공했다.
- 변경에 있어서 더 유리한 위치를 가지게 된다.
위임식/ 분산식 제어 스타일

- 객체지향 설계에서는 제어가 여러 객체 사이로 분배된다.
- 객체지향 애플리케이션은 스스로를 책임지는 자율적인 객체들로 구성되기 때문에 어느 한 객체가 제어를 독점할 수 없다.
- 객체는 자신이 할 수 없는 일이 있으면 이 일을 더 잘할 수 있는 객체에게 위임한다.(제어를 분산)
- 제어를 분산시키면서 수정하기 쉽고 유연한 설계를 얻을 수 있다.
728x90
'오브젝트' 카테고리의 다른 글
| Ch05 객체지향 구현 - 유연하고 일관적인 협력 (0) | 2024.10.09 |
|---|---|
| Ch05 객체지향 구현 - 메시지와 메서드의 분리 (0) | 2024.10.09 |
| Ch04 책임 할당하기 - 변경 보호 (8) | 2024.10.05 |
| Ch04. 책임 할당하기 - 다형성 (0) | 2024.10.05 |
| Ch04. 책임 할당하기 - 설계 트레이드오프(높은 응집도) (2) | 2024.10.05 |