자율적인 책임
요청을 처리하기 위해 객체가 수행하는 행동을 책임이라고 한다.
'증언하라'라는 책임은 자율성을 충분히 보장할 수 있을 정도로 포괄적으로 추상적이다.
하지만 '목격했던 장면을 떠올려라', '떠오르는 기억을 시간 순서대로 재구성하라', '말로 간결하게 표현하라'라는 상세한 수준의 책임들은 자율성을 제한한다.
메시지와 메서드
메시지를 전송할 때 추가적인 정보가 필요한 경우 메시지의 인자(argument)를 통해 추가 정보를 제공할 수 있다.
메시지가 곧 메서드이고 메시지의 인자가 매개변수이다.
예를 들어 왕이 모자 장수에게 어제, 왕국에서 목격한 것을 증언할 것을 요청하고 싶다면 다음과 같은 메시지를 전송할 것이다.
모자장수.증언하라(어제, 왕국)
다형성
: 서로 다른 유형의 객체가 동일한 메시지에 대해 서로 다르게 반응하는 것
and 동일한 역할을 수행할 수 있는 객체들 사이의 대체 가능성을 의미
유연하고 확장 가능하고 재사용성이 높은 협력의 의미
- 협력이 유연해진다. 송신자는 수신자가 메시지를 이해한다면 누구라도 상관하지 않는다.
- 협력이 수행되는 방식을 확장할 수 있다. 송신자에게 아무런 영향도 미치지 않고서도 수신자를 교체할 수 있기 때문에 협력의 세부적인 수행 방식을 쉽게 수정할 수 있다.
- 협력이 수행되는 방식을 재사용할 수 있다. 협력에 영향을 미치지 않고서도 다양한 객체들이 수신자의 자리를 대체할 수 있기 때문에 다양한 문맥에서 협력을 재사용할 수 있다.
'Book > 객체지향의 사실과 오해' 카테고리의 다른 글
[객체지향의 사실과 오해] 04장 역할, 책임, 협력 (0) | 2023.07.24 |
---|---|
[객체지향의 사실과 오해] 03장 타입과 추상화 (0) | 2023.07.24 |
[객체지향의 사실과 오해] 02장 이상한 나라의 객체 (0) | 2023.07.15 |
[객체지향의 사실과 오해] 01장 협력하는 객체들의 공동체 (0) | 2023.07.15 |