01. 협력하는 객체들의 공동체
협력하는 사람들
“소프트웨어 개발자의 역할은 단순히 실세계를 소프트웨어 안으로 옮겨 담는 것이 아니라, 고객과 사용자를 만족시킬 수 있는 신세계를 창조하는 것이다.”
- 객체지향의 가장 중요한 개념은
역할,책임,협력협력은 요청과 응답으로 구성역할은 사람들이 다른 사람과 협력하는 과정 속에서 부여- 역할이라는 단어는 의미적으로
책임이라는 개념을 내포
협력을 위해 특정한역할을 맡고 역할에 적합학책임을 수행
역할, 책임, 협력
시스템은
역할과책임을 수행하는 객체로 분할되고, 시스템의 기능은 객체 간의 연쇄적인 요청과 응답의 흐름으로 구성된협력으로 구현객체지향 설계라는 예술은 적절한 객체에게 적절한
책임을 할당하는 것에서 시작된다.역할은 관련성 높은 책임의 집합이다.
협력 속에 사는 객체
객체는 다른 객체와의 협력을 통해 기능을 구현
- 협력을 위해 객체는 두 덕목을 갖춰야 한다.
- 객체는 충분히
협력적이어야 한다. - 객체가 충분히
자율적이어야 한다.
- 객체는 충분히
- 흔히 객체를
상태(state)와행동(behavior)을 함께 지닌 실체라고 정의한다.- 객체가 협력에 참여하는 과정 속에서 스스로 판단하고 스스로 결정하는 자율적인 존재로 남기 위해서는 필요한
행동과 그를 위한상태를 함께 지녀야 한다.
- 객체가 협력에 참여하는 과정 속에서 스스로 판단하고 스스로 결정하는 자율적인 존재로 남기 위해서는 필요한
객체는 협력을 위해 다른 객체에게
메시지를 전송하고 다른 객체로부터메시지를 수신한다.객체가 수신된 메시지를 처리하는 방법을
메서드(method)라고 부른다.- 요청을 표현하는
메시지와 요청을 처리하는메서드는 분리되어 있다. (캡슐화개념과 관)련
객체지향의 본질
- 객체지향의 개념?
- 시스템을 상호작용하는
자율적인 객체들의 공동체로 바라보고 객체를 이용해 시스템을 분할하는 방법 - 자율적인 객체란
상태와행위를 함께 지니며 스스로 자기 자신을 책임지는 객체를 의미 - 객체는 시스템의 행위를 구현하기 위해 다른 객체와
협력한다. 각 객체는 협력 내에서 정해진역할을 수행하며 역할은 관련된책임의 집합이다. - 객체는 다른 객체와 협력하기 위해 메시지를 전송하고,
메시지를 수신한 객체는 메시지를 처리하는데 적합한메서드를 자율적으로 선택한다.
- 시스템을 상호작용하는
- 객체지향은 객체를 지향하는 것이다. 객체의 역할, 책임, 협력에 집중하자.