Objects 3장 역할, 책임, 협력

카일·2020년 3월 2일
1

Objects 오브젝트

목록 보기
3/11
post-thumbnail

복습 및 정리

객체란 협력하는 공동체내에서 자율적으로 어떠한 역할을 수행하여 협력에 참여하는 자율적 존재이다. 즉 객체는 각각어떠한 역할을 수행할 다양한 책임을 가지고 있다. 프로그램을 개발하는 것은 이렇게 다양한 객체 중 어떠한 객체가 가장 잘 할수 있고 알고있는 객체에게 역할을 할당하는 것을 의미한다. 역할이라는 관점에서 다시 보자. 객체에게 어떠한 데이터나 행동을 강제하는 것이 아니다. 프로그램 전체의 요구사항을 만족하기 위해 어떠한 역할 을 객체에게 부여하는 것이다. 즉 객체는 역할을 부여받고 이러한 역할을 수행하기 위한 다양한 책임으로 이를 분리하고 이러한 책임을 수행하기 위해 필요한 상태를 찾는다.

이러한 관점에서 객체를 바라본다면 추상화된 개념적인 부분을 생각하여 역할을 부여하기 때문에 구현 이라는 것에 얽매이지 않고 객체가 본질적으로 처리해야하는 역할에 집중할 수 있다 .그리고 이러한 역할에 대한 집중은 유연한 프로그래밍을 가능하게 한다. 할인 정책이라는 것을 추상화할 수 있었던 이유는 할인이라는 추상화된 영역을 수행할 수 있는 객체가 필요했기 때문이며 구체적인 할인 방법이 필요했던 것 이 아니었기에 가능한 것이다.

협력 책임

객체의 책임이란 할 수 있는 것과 알고 있는 것에서부터 나온다. 가장 잘 할 수 있는 객체에게 .

적절한 객체에게 적절한 책임을 할당한다.

사용자에게 제공할 책임 —> 작은 책임들 —> 각각의 전문 객체에게 할당 —> 처리 ..... —> 협력 ... —> 완성

CRC

역할은 객체의 책임의 집합이다.

전체 기능을 생각하고 어떠한 역할을 하는 객체에게 어떤 역할을 전달할지를 고민하는 것은 추상화된 개념적인 부분을 생각하게 하며 이는 추상화된 그리고 유연한 프로그래밍을 가능하게 한다.

추상화에서 알 수 있는 추상클래스와 인터페이스는 역할을 나타내는 추상화된 개념을 의미하고 이말은 즉슨 메세지로서 오는 역할을 수행할 수 있는 집합을 대표하는 것을 의미한다. 즉 추상클래스나 인터페이스의 하위 클래스나 구현체들은 동일한 역할을 수행할 수 있다는 점에서 같다는 것을 의미한다. 이렇게 추상화된 역할에 초점을 맞추는것은 결국 유연하게 객체간 협력을 가능하게 한다.

협력 — 참조 — 역할 — 선택 — 객체 — 인스턴스 —클래스

0개의 댓글