Skip to content

[15장 김명석] #75

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Nov 12, 2023
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
45 changes: 45 additions & 0 deletions src/main/kotlin/kms/chapter15/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
### 디자인 패턴

- 패턴은 반복적으로 발생하는 문제와 해법의 쌍으로 정의된다
- 패턴을 사용함으로써 이미 알려진 문제와 이에 대한 해법을 문서로 정리할 수 있으며 이지식을 다른 사람과 **의사소통**할 수 있다
- 패턴은 추상적인 원칙과 실제 코드 작성 사이의 간극을 메워주며 실질적인 코드 작성을 돕는다
- 패턴의 요점은 패턴이 실무에서 탄생했다는 점이다

### 패턴 분류

- 아키텍처 패턴
- 분석 패턴
- 디자인 패턴
- 이디엄

#### 아키텍처 패턴

- 미리 정의된 서브시스템들을 제공
- 서브시스템들의 책임을 정의
- 서브시스템들 사이의 관계를 조직화하는 규칙과 가이드라인을 포함

#### 분석 패턴

- 도메인 내의 개념적인 문제를 해결하는데 초점

#### 이디엄

- 특정 언어에만 국한된 패턴
ex) C++ COUNT POINTER

### 패턴과 책임-주도 설계

- 객체지향 설계에서 가장 중요한 일은 올바른 책임을 올바른 객체에게 할당하고 객체 간의 유연한 협력관계를 구축하는 일

### 캡슐화와 디자인 패턴

- 디자인 패턴은 협력을 일관성 있고 유연하게 만드는 것을 목적으로 한다
- 특정한 변경을 **캡슐화**하기 위한 독자적인 방법을 정의

### 프레임워크

- 추상 클래스나 인터페이스를 정의하고 인스턴스 사이의 상호작용을 통해 시스템 전체 혹은 일부를 구현해 높은 재사용 가능한 설계
- 프레임워크의 구조적인 측면
- 애플리케이션 개발자가 현재의 요구사항에 맞게 커스터마이징할 수 있는 애플리케이션의 골격
- 코드와 설계의 재사용