[2019.02.21] 객체지향의 오해와 진실 (7장~부록)
2019. 2. 21. 23:59ㆍ[공부] 독서/객체지향의 사실과 오해
7장
Composition 관계 |
메뉴판 ◆― 메뉴 | part of 관계 |
Aggregation 관계 | 메뉴 ◇― 이름 | has a 관계 |
Association 관계 |
메뉴판 ―― 손님 |
|
도메인 모델에서 어떤 관계가 어떤 관계이고 이런 것은 중요하지 않다.
훌륭한 코드를 위한 3가지 관점
- 개념 관점
- 명세 관점
- 구현 관점
인터페이스와 구현을 분리하라 (명세와 구현의 분리)
부록
클래스는 객체가 공유하는 본질적인 속성을 정의한다.
서브타입은 슈퍼타입의 부분집합이다.
100% 규칙 : 슈퍼 타입의 정의는 100% 서브타입에 적용돼야만 한다.
상속에서 구조적인 순응 : 100% 규칙
상속에서 행위적인 순응 : 다형성
서브 타이핑 : 인터페이스 상속 - 설계의 유연성이 목표
서브 클래싱 : 구현 상속 - 코드의 중복 제거가 목표
위임 : 수신된 메시지가 이해할 수 없는 경우 부모 클래스로 위임하는 것 (super.function1();)
연관 관계로 연결된 두 객체는 독립적으로 제거 가능하다.
패키지, 모듈 = 클래스 집합
패키지는 내부의 클래스들을 추상화 한다.
= 패키지로 내부에 포함된 객체들을 감춰서 시스템 구조를 추상화한다.
'[공부] 독서 > 객체지향의 사실과 오해' 카테고리의 다른 글
[2019.02.20] 객체지향의 사실과 오해 (5~6장) (0) | 2019.02.21 |
---|---|
[2019.02.19] 객체지향의 사실과 오해 (1장~4장) (0) | 2019.02.19 |