-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Docs: Modify Object-oriented_Facts_and_Misunderstandings
- Loading branch information
Showing
3 changed files
with
58 additions
and
1 deletion.
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
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,57 @@ | ||
## 서문 | ||
|
||
객체지향이라는 단어는 오랜 역사와 성숙도에더 불구하고 소프트웨어 개발에서 항상 뜨거운 감자이다. | ||
|
||
객체지향에서 많은 사람들이 동의하는 공통적인 특징으론 추상화, 캡슐화, 상속, 다형성이 있고, 이는 객체지향을 다른 패러다임과 구분하는 중요한 특징이다. | ||
|
||
SOLID로 대표되는 몇 가지 원칙이나 반복적으로 발생하는 문제를 해결하기 위한 패턴들도 객체지향의 유용한 도구이다. | ||
|
||
그렇다면 이런 것을 통틀어서 객체지향이라고 할 수 있을까? | ||
|
||
*위에서 말한 몇 가지는 객체지향적으로 만들 수 있게 도와주는 도구일 뿐 객체지향이란 언어에서 벗어나 하나의 공동체를 만드는 작업이라고 생각한다.* | ||
|
||
이 책은 많은 개발자들의 "객체지향이란?"말에 대답을 하기위해 쓰여졌으며 객체지향에 대한 본질을 다룬다. | ||
|
||
첫 번째 걸음은 클래스가 아닌 객체를 바라보는 것에서부터 시작한다. | ||
|
||
두 번째 걸음은 객체를 독립적인 존재가 아닌 기능을 구현하기 위해 협력하는 공동체로 바라보는 것이다. | ||
|
||
세 번째 걸음을 내디딜 수 있는지 여부는 협력에 참여하는 객체들에게 얼마나 적절한 역할과 책임을 부여할 수 있느냐에 달려 있다. | ||
|
||
객체지향의 마지막 걸음은 사용하는 언어라는 틀에 흐트러짐 없이 담아낼 수 있는 기술을 익히는 것이다. | ||
|
||
### 대상독자 | ||
|
||
이 책은 객체지향언어을 사용하는 프로그래머를 위해 쓰여졌다. | ||
|
||
객체지향언어를 사용하지만, 구조적 프로그래밍을 하는 프로그래머들에게도 도움이 될 것이다. | ||
|
||
### 이 책의 구성 | ||
|
||
- 1장 협력하는 객체들의 공동체 | ||
- 객체지향 패러다임의 핵심이 자율적인 객체들의 협력이라는 사실을 강조한다. | ||
- *지금까지 객체지향의 중심이 클래스나 상속이라고 생각했던 사람은 약간의 당혹감을 받을 수 있다.* | ||
- 2장 이상한 나라의 객체 | ||
- '객체란 무엇인가'라는 본질적인 질문에 대답하려고 한다. | ||
- 3장 타입과 추상화 | ||
- 소프트웨어 개발에서 중요한 개념인 추상화와 마주치게 된다. | ||
- 거창해 보이지만 추상화는 단순화를 의미하고 객체지향 패러다임에서 가장 널리 사용되는 추상화는 동적인 객체들을 단순화시켜 정적인 타입으로 갈무리하는 것이다. | ||
- 4장 역할, 책임, 협력 | ||
- 객체지향 설계에서 가장 중요한 재료인 역할, 책임, 협력에 관해 설명한다. | ||
- 객체들은 협력에 참여하기 위해 특정한 역할을 맡고 역할에 적합한 책임을 수행하게 된다. | ||
- 5장 책임과 메세지 | ||
- 훌룡한 메시지가 훌륭한 객체지향 설계의 기반이라는 사실을 강조한다. | ||
- 객체의 자율성과 설계의 유연성은 얼마나 훌룡한 메시지를 선택하냐에 달려있다. | ||
- 6장 객체 지도 | ||
- 객체지향이 구조와 기능이라는 두 가지 관점을 어떻게 조화시키는지에 관해 설명한다. | ||
- 구조는 기능에 비해 변화에 더 안정적이다. 따라서 객체지향 패러다임은 객체들의 구조안에 기능을 녹임으로써 변화에 안정적인 소프트웨어를 개발할 수 있게 한다. | ||
- 7장 함께 모으기 | ||
- 마지막장으로 예시 코드와 함께 앞서 읽은 챕터들의 활용을 보여준다. | ||
|
||
### 책을 읽는 방법 | ||
|
||
1장부터 유기적인 흐름으로 연결되어 있기 때문에 가장 효과적인 방법은 순서대로 읽는 것이다. | ||
|
||
### 집필 동기 | ||
|
||
오브젝트라는 거대한 객체지향 개발 책을 쓰다가 나온 책이다. |
File renamed without changes.