-
Notifications
You must be signed in to change notification settings - Fork 27
[최유성] 객체지향의 사실과 오해 1단원
choiyusung edited this page Oct 12, 2019
·
1 revision
-
객체지향의 목표는 실세계를 모방하는것이 아니다. 새로운 세계를 창조하는 것이다.
- 그럼에도 실세계를 모방하는 형식으로 객체지향을 설명하는 이유는 캡슐화, 자율성, 메시지를 주고받으며 공동의 목표를 달성하기 위한 협력하는 객체들의 관계를 설명하기 좋다.
-
요청과 응답을 통해 협력하여 어려운 문제를 해결하는 공동체를 만들 수 있다.(객체간의 관계) 객체의 역할과 책임이 잘 나누어져 있다면 어려운 문제를 파악하기 더 쉬워질 것이다.
- 손님 -> 캐시어 -> 바리스타 -> 캐시어 -> 손님
-
객체의 역할
- 여러객체가 동일한 역할을 수행할 수 있다.
- 역할은 대체 가능성을 의미한다.
- 각 객체는 책임을 수행하는 방법을 자율적으로 선택할 수 있다. (다형성)
- 하나의 객체가 동시에 여러 역할을 수행할 수 있다.
** 책임이 불분명한 객체는 애플리케이션의 미래 역시 불분명하게 만듬
4.객체는 협력적이어야 한다. 전지전능한 객체는 내부적인 복잡도를 만든다.
5.객체는 자율적이어야 한다. 여기서 자율적이란 말은 자기 스스로를 통제하는 것을 의미한다. 어떤 요청에 대하여 어떻게 행동할 것인지, 자신의 어떤것을 변경할지는 스스로 결정한다.
-
객체는 다른 객체가 무엇을 수행하는지만 알 수 있다. 어떻게 수행하는지는 그 객체 자신만 알 수 있다.
-
객체는 서로 메시지만으로 서로 요청하고 협력할 수 있다.
-
외부의 요청이 무엇인지를 표현하는 메시지와 요청을 처리하기 위한 구체적인 방법 즉 메서드를 분리하는 것이 객체의 자율성을 높이는 핵심 메커니즘
- 캡슐화
-
클래스는 객체를 표현하기 위한 도구이다. 중요한 것은 객체간의 동적인 관계이다.