[객체지향의 사실과 오해] 138 - 176

2021. 11. 21. 03:47
728x90

 

 

자율적인 책임의 특징은 객체가 '어떻게'해야 하는가가 아니라 '무엇'을 해야 하는가를 설명한다는 것이다.

 

 

다형성이란 서로 다른 타입에 속하는 객체들이 동일한 메시지를 수신할 경우 서로 다른 메서드를 이용해 메시지를 처리할 수 있는 메커니즘을 가리킨다.

 

 

서로 다른 객체들이 다형성을 만족시킨다는 것은 객체들이 동일한 책임을 공유한다는 것을 의미한다.

 

 

다형성을 사용하면 송신자가 수신자의 종류를 모르더라도 메시지를 전송할 수 있다. 즉, 다형성은 수신자의 종류를 캡슐화한다.

 

 

객체지향 패러다임이 강력한 이유는 다형성을 이용해 협력을 유연하게 만들 수 있기 때문이라는 점을 기억하라.

 

 

객체지향의 강력함은 클래스가 아니라 객체들이 주고받는 메시지로부터 나온다.

 

 

객체지향 패러다임으로의 전환은 시스템을 정적인 클래스들의 집합이 아니라 메시지를 주고받는 동적인 객체들의 집합으로 바라보는 것에서 시작된다.

 

 

객체가 메시지를 선택하는 것이 아니라 메시지가 객체를 선택하게 해야 한다.

 

 

책임-주도 설계의 핵심은 어떤 행위가 필요한지를 먼저 결정한 후에 이 행위를 수행할 객체를 결정하는 것이다.

 

 

객체 사이의 협력 관계를 설계하기 위해서는 먼저 '어떤 행위'를 수행할 것인지를 결정한 후에 '누가' 그 행위를 수행할 것인지를 결정해야 한다는 것이다.

 

 

객체의 행위를 결정하는 것은 객체 자체의 속성이 아니라는 점에 주목하라.

 

 

객체가 협력에 참여하기 위해 수행하는 메시지가 객체의 공용 인터페이스의 모양을 암시한다.

 

 

인터페이스와 구현의 분리 원칙은 변경을 관리하기 위한 것이다.

 

 

객체의 자율성을 보존하기 위해 구현을 외부로부터 감추는 것을 캡슐화라고 한다.

 

 

객체의 책임이 자율적일수록 협력이 이해하기 쉬워지고 유연하게 변경할 수 있게 된다.

 

 

 

 

 

 

객체지향의 사실과 오해 - 교보문고

역할, 책임, 협력 관점에서 본 객체지향 | 현재의 소프트웨어 개발에 있어 가장 중요한 패러다임이 객체지향이라는 사실에 대부분 이견이 없을 것이다. 절차형 패러다임을 접목한 C++나 함수형

www.kyobobook.co.kr

 

728x90

BELATED ARTICLES

more