728x90
데이터와 프로세스 통합

- 다른 클래스의 데이터를 사용하여 의사 결정을 하거나 데이터를 제공한 클래스의 상태를 변경하는 로직이 있다면, 데이터를 보유한 클래스 쪽으로 옮겨야 한다.
- 데이터를 사용하는 로직을 데이터를 보유한 클래스 쪽으로 옮기면 데이터가 수정될 때 변경의 영향 범위를 데이터 클래스 내부로 제한할 수 있게 된다.
- 클래스 수정에 용이
- 이처럼 데이터를 사용하는 로직을 데이터를 보유한 클래스 쪽으로 이동시키는 작업을 객체지향에서는 책임의 이동이라고 한다.
데이터와 객체
- 로직에 특성에 따라서 클래스의 인스턴스는 데이터가 될 수 있고, 객체가 될 수도 있다.
- 로직이 클래스의 인스턴스를 수동적인 존재로 만든다면 클래스의 인스턴스는 데이터가 된다.
- 로직이 클래스의 인스턴스를 능동적인 존재로 만든다면 클래스의 인스턴스는 객체가 된다.
- 인스턴스가 다른 객체의 판단에 의존하거나 세세한 의사결정을 외부에 의존한다면, 클래스로 구현이 되었다고 하더라도 해당 인스턴스는 데이터라고 불러야 한다.
- 데이터를 외부에 제공하고 외부에서 판단하고 결정하는 수동적인 존재를 바보 데이터 객체라고 한다.
- 자기 자신의 상태를 직접 관리하고 스스로 판단하고 결정하는 자율적인 존재를 똑똑한 객체라고 한다.
데이터와 객체를 나누는 가장 큰 특성은 자율성이다. 자신의 상태와 행동에 관해 스스로 판단하고 결정한다면 객체라고 부른다. 자기 스스로의 원칙에 따라 일을 하거나 자기 자신을 통제할 수 있는 객체를 설계하는 것이 객체지향의 기본 철학이다.!
728x90
'오브젝트' 카테고리의 다른 글
| Ch03. 객체지향 기본 원칙 - 객체지향 설계 원칙 (0) | 2024.10.01 |
|---|---|
| Ch02. 절차적인 설계 개선하기 - 절차에서 객체로 (0) | 2024.09.29 |
| Ch02. 절차적인 설계 개선하기 - 변경과 의존성 (0) | 2024.09.29 |
| Ch02. 절차적인 설계 개선하기 - 절차적인 설계 (0) | 2024.09.29 |
| Ch01. 영화 예매 도메인 (0) | 2024.09.15 |