-
Notifications
You must be signed in to change notification settings - Fork 5
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #424 from ThinkAboutSoftware/dhlee-TEOOO-week1
dhlee-teooo week1
- Loading branch information
Showing
4 changed files
with
59 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
# ch01. 협력하는 객체들의 공동체 | ||
|
||
- 객체지향의 목표는 새로운 세계를 창조하는 것 | ||
- 객체는 서로 협렵(요청 + 응답)한다. | ||
- 협력 과정 속에서 특정한 역할(role)과 그에 대한 책임을 부여 받음 | ||
- 여러 객체가 동일한 역할을 수행 할 수 있음 => 역할은 대체가능 | ||
- 객체는 책임 수행 방법을 자율적으로 선택 | ||
- 요청 객체는 응답 객체의 책임 수행 방법을 몰라도 됨 | ||
- 하나의 객체가 동시에 여러 역할을 수행할 수 있음 | ||
- 객체 | ||
- 애플리케이션의 기능을 구현하는 협력적, 자율적 존재 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
# ch02. 이상한 나라의 객체 | ||
|
||
- 상태를 결정하는 것은 행동이지만 행동의 결과를 결정하는 것은 상태 | ||
- 상태 | ||
- 상호작용에 어떻게 반응하는가를 결정 | ||
- 프로퍼티 | ||
- 상태를 구성하는 모든 특징 | ||
- 속성(단순 값)과 링크(다른 객체를 가리키는 값)로 표현가능 | ||
- 행동 | ||
- 부수 효과(side effect)를 일으킴 | ||
- 협력하는 다른 객체에 메시지를 전송 | ||
- 상태의 캡슐화 | ||
- 객체는 자신의 상태를 스스로 관리하는 '자율적' 존재 | ||
- 메시지 송신자는 수신자의 상태 변경에 대해서는 전혀 알지 못하는 것이 캡슐화 | ||
- 캡슐화로 인해 객체의 자율성을 높임 | ||
- 객체의 행동에 초점을 맞춰야 함 | ||
- 객체가 다른 객체와 협력할 수 있는 유일한 방법은 행동 | ||
- 쿼리(query): 객체의 상태를 조회하는 작업 | ||
- 명령(command): 객체의 상태를 변경하는 작업 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
# ch03. 타입과 추상화 | ||
|
||
- 추상화 | ||
- 목적에 맞게 절차나 물체를 의도적으로 생략하거나 감춤으로써 복잡도 감소 | ||
- 데이터 추상화: 공통된 특징으로 그룹으로 분류(classification) | ||
- 어떤 특징으로 그룹화하는지에 따라 달라짐 | ||
- 객체의 행동으로 그룹화 | ||
- 객체는 행위에 따라 상태가 변할 수 있기 때문 | ||
- 타입(type) | ||
- 공통점을 기반으로 객체들을 묶기 위한 틀 | ||
- 타입에 속한 데이터를 메모리에 어떻게 표현하는지를 감춤 | ||
- 일반화/특수화 | ||
- 일반적인 타입(슈퍼타입): 특수한 타입이 가진 모든 행동 중 일부 **행동**만을 가지는 타입 | ||
- 특수한 타입(서브타입): 일반적인 타입이 가진 모든 타입을 포함하고, 자기만의 **행동**을 추가하는 타입 | ||
- 제어 추상화: 내부 로직을 숨김 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
# ch04. 역할, 책임, 협력 | ||
|
||
- 객체는 협력(요청 + 응답)관계로 이루어짐 | ||
- 객체는 요청(메시지 전송)에 대해 적절한 행동을 할 의무(책임)가 있음 | ||
- 역할(role) | ||
- 하나의 책임을 수행하는 객체는 여러개일 수 있기 때문에 책임을 수행하는 역할을 부여 | ||
- 역할을 대체하기 위해서는 행동이 호환되어야 함 | ||
- 수신받은 메시지(요청)를 동일한 방식으로 이해할 수 있어야 함 | ||
- 역할을 통해 협력을 추상화 할 수 있음 | ||
- 하나의 객체는 역할에 주어진 책임 외에 다른 책임을 수행할 수도 있음 | ||
- 깔끔한 협력 설계 | ||
1. 협력 문맥에서 객체가 수행하게 될 적절한 책임을 결정 | ||
2. 행동을 수행하는데 필요한 데이터 결정 | ||
3. 클래스의 구현 방법 결정 |