닭발개발

[오브젝트] 8일차. 92-107pg | 객체의 역할, 데이터 중심 설계 본문

책책책 책을 읽읍시다‼ ver.개발/[ 오브젝트: 코드로 이해하는 객체지향 설계 ]

[오브젝트] 8일차. 92-107pg | 객체의 역할, 데이터 중심 설계

D269 2023. 7. 4. 20:27
728x90

8일차.

 
오브젝트: 코드로 이해하는 객체지향 설계[2주차_화요일]
92-107pg
 
 

#요약 

 **Chapter 03. 역할, 책임, 협력** 
- 객체지향 패러다임의 관점에서 핵심은 역할, 책임, 협력이다.
 
03. 역할
3) 객체 대 역할
- 역할 모델링 : 역할을 설계의 중심 개념으로 봄.
- 역할의 가장 큰 장점은 설계의 구성 요소를 추상화할 수 있다는 것
 
4) 역할과 추상화
- 역할은 공통의 책임을 바탕으로 객체의 종류를 숨기기 때문에 이런 관점에서 역할을 객체의 추상화로 볼 수 있다.
- 협력의 관점에서는 세부적인 사항을 무시하고 추상화에 집중하는 것이 유용하다.

 5) 배우와 배역
- 동일한 배역을 여러 명의 배우들이 연기할 수 있음
- 협력 안에서 역할을 수행하는 객체
- 객체는 협력이 끝나고 협력에서의 역할을 잊고 원래의 객체로 돌아올 수 있다.
- 역할은 특정한 객체의 종류를 캡슐화 하기 때문에 동일한 역할을 수행하고 계약을 준수하는 대체 가능한 객체들은 다형적이다.
 



 **Chapter 04. 실제 품질과 트레이드오프** 
1. 객체지향 설계의 핵심은 설계
2. 책임을 할당하는 작업이 응집도와 결합도 같은 설계 품질과 연관돼 있다.
 
- 합리적인 비용 안에서 변경을 수용할 수 있는 구조를 만드는 것이 좋음.
- 결합도와 응집도를 합리적인 수준으로 유지하려면? 객체의 상태가 아니라 객체의 책임에 초점을 맞춰야 함.
 
01. 데이터 중심의 영화예매 시스템
- 시스템을 객체로 분할할 수있는 방법1 : 상태를 분할의 중심축으로 삼는 방법
- 시스템을 객체로 분할할 수 있는 방법2 : 책임을 분할의 중심축으로 삼는 방법
- 객체의 상태는 구현에 속한다.
 
1) 데이터를 준비하자.
- 데이터 중심 설계 : 객체 내부에 저장되는 데이터를 기반으로 시스템 분할
- 캡슐화를 하기 위해 접근자와 수정자를 추가하자.
 
2) 영화를 예매하자
 
 
 

#발췌

 동일한 객체라고 하더라도 객체가 참여하는 협력에 따라 객체의 얼굴은 계속해서 바뀌게 된다. 

 
 
 
 
 

728x90
반응형