일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 성수직장인
- 성수맛집
- 헤드퍼스트디자인패턴
- 개발자
- 디자인패턴
- 오브젝트
- 주니어개발자
- Linux
- 클린코드
- 성수핫플
- 깨끗한코드
- docker
- IntelliJ
- 책너두
- 직장인점심
- 성수
- 코딩
- 객체지향프로그래밍
- 상속
- JavaScript
- 객체지향
- DesignPattern
- 직장인
- 독서일지
- 성수볼거리
- 헤드퍼스트
- JAVA개발자
- 독서
- Java
- 책읽기
- Today
- Total
닭발개발
[오브젝트] 8일차. 92-107pg | 객체의 역할, 데이터 중심 설계 본문
[오브젝트] 8일차. 92-107pg | 객체의 역할, 데이터 중심 설계
D269 2023. 7. 4. 20:278일차.
오브젝트: 코드로 이해하는 객체지향 설계[2주차_화요일]
92-107pg
#요약
**Chapter 03. 역할, 책임, 협력**
- 객체지향 패러다임의 관점에서 핵심은 역할, 책임, 협력이다.
03. 역할
3) 객체 대 역할
- 역할 모델링 : 역할을 설계의 중심 개념으로 봄.
- 역할의 가장 큰 장점은 설계의 구성 요소를 추상화할 수 있다는 것
4) 역할과 추상화
- 역할은 공통의 책임을 바탕으로 객체의 종류를 숨기기 때문에 이런 관점에서 역할을 객체의 추상화로 볼 수 있다.
- 협력의 관점에서는 세부적인 사항을 무시하고 추상화에 집중하는 것이 유용하다.
5) 배우와 배역
- 동일한 배역을 여러 명의 배우들이 연기할 수 있음
- 협력 안에서 역할을 수행하는 객체
- 객체는 협력이 끝나고 협력에서의 역할을 잊고 원래의 객체로 돌아올 수 있다.
- 역할은 특정한 객체의 종류를 캡슐화 하기 때문에 동일한 역할을 수행하고 계약을 준수하는 대체 가능한 객체들은 다형적이다.
**Chapter 04. 실제 품질과 트레이드오프**
1. 객체지향 설계의 핵심은 설계
2. 책임을 할당하는 작업이 응집도와 결합도 같은 설계 품질과 연관돼 있다.
- 합리적인 비용 안에서 변경을 수용할 수 있는 구조를 만드는 것이 좋음.
- 결합도와 응집도를 합리적인 수준으로 유지하려면? 객체의 상태가 아니라 객체의 책임에 초점을 맞춰야 함.
01. 데이터 중심의 영화예매 시스템
- 시스템을 객체로 분할할 수있는 방법1 : 상태를 분할의 중심축으로 삼는 방법
- 시스템을 객체로 분할할 수 있는 방법2 : 책임을 분할의 중심축으로 삼는 방법
- 객체의 상태는 구현에 속한다.
1) 데이터를 준비하자.
- 데이터 중심 설계 : 객체 내부에 저장되는 데이터를 기반으로 시스템 분할
- 캡슐화를 하기 위해 접근자와 수정자를 추가하자.
2) 영화를 예매하자
#발췌
동일한 객체라고 하더라도 객체가 참여하는 협력에 따라 객체의 얼굴은 계속해서 바뀌게 된다.
'책책책 책을 읽읍시다‼ ver.개발 > [ 오브젝트: 코드로 이해하는 객체지향 설계 ]' 카테고리의 다른 글
[오브젝트] 12일차. 141-155pg | GRASP패턴, 낮은 결합도, 높은 응집도, 창조자패턴 (0) | 2023.07.10 |
---|---|
[오브젝트] 9일차. 108-118pg | 캡슐화, 응집도, 결합도 (0) | 2023.07.05 |
[오브젝트] 7일차. 78-91pg | 객체의 책임, 역할 (0) | 2023.07.03 |
[오브젝트] 6일차. 65~77pg | 추상화, 상속, 협력 (0) | 2023.07.01 |
[오브젝트] 5일차. 51~64pg | 오버라이딩, 오버로딩, 상속과 다형성 (0) | 2023.06.30 |