[객체지향의 사실과 오해] 106 - 137

2021. 11. 18. 20:55
728x90

 

 

객체지향 설계의 전체적인 품질을 결정하는 것은 개별 객체의 품질이 아니라 여러 객체들이 모여 이뤄내는 협력의 품질이다.

 

 

어떤 협력에 참여하는지가 객체에 필요한 행동을 결정하고, 필요한 행동이 객체의 상태를 결정한다.

 

 

객체지향 개발에서 가장 중요한 능력은 책임을 능숙하게 소프트웨어 객체에 할당하는 것

 

 

객체의 책임은 객체가 무엇을 알고 있는가와 무엇을 할 수 있는가로 구성된다.

 

 

어떤 객체가 수행하는 책임의 집합은 객체가 협력 안에서 수행하는 역할을 암시한다.

 

 

역할이 재사용 가능하고 유연한 객체지향 설계를 낳는 매우 중요한 구성요소이기 때문이다.

 

 

동일한 역할을 수행하는 객체들이 동일한 메시지를 수신할 수 있기 때문에 동일한 책임을 수행할 수 있다는 것은 매우 중요한 개념이다.

 

 

역할은 객체지향 설계의 단순성, 유연성, 재사용성을 뒷받침하는 핵심 개념이다.

 

 

역할의 가장 큰 가치는 하나의 협력 안에 여러 종류의 객체가 참여할 수 있게 함으로써 협력을 추상화할 수 있다는 것이다.

 

 

협력의 추상화는 설계자가 다뤄야 하는 협력의 개수를 줄이는 동시에 구체적인 객체를 추상적인 역할로 대체함으로써 협력의 양상을 단순화한다.

 

 

객체는 역할이 암시하는 책임보다 더 많은 책임을 가질 수 있다.

 

 

역할이 협력을 추상적으로 만들 수 있는 이유는 역할 자체가 객체의 추상화이기 때문이다.

 

 

역할의 대체 가능성은 행위 호환성을 의미하고, 행위 호환성은 동일한 책임의 수행을 의미한다.

 

 

데이터는 단지 객체가 행위를 수행하는 데 필요한 재료일 뿐이다. 실제로 중요한 것은 객체의 행동, 즉 책임이다.

 

 

객체지향의 핵심은 클래스를 어떻게 구현할 것인가가 아니라 객체가 협력 안에서 어떤 책임과 역할을 수행할 것인지를 결정하는 것이다.

 

 

책임을 항당하고 행동을 결정한 후에 그 행동을 수행하는 데 필요한 데이터를 고민하고 클래스의 구현 방법을 결정해야 한다.

 

 

 

 

 

 

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

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

www.kyobobook.co.kr

 

728x90

BELATED ARTICLES

more