목표
1. 디자인 패턴은 무엇인가?
1-1) 정의
- 객체 지향 설계의 일반적인 문제에 대한 솔루션
- 특정 문제를 해결하기 위한 일반적인 개념
- 알고리즘 : (요리법) > 명확한 일련의 작업에 대한 방법
- 패턴 : (청사진) > 수준 높은 해결에 대한 설계
2. 디자인 패턴을 배워야 하는 이유
- 소프트웨어 디자인의 일반적인 문제에 대하여 시도되고 테스트 된 솔루션 툴킷
- 효율적으로 의사 소통하는데 사용할 수 있는 공통 언어
3. 디자인 패턴에 대한 비판
- 패턴은 추상화 수준이 부족한 프로그래밍 언어나 기술을 선택할 때 많이 발생
- 최신 프로그래밍 언어에서 패턴을 함수 형태로 제공하는 경우도 많음
- "망치만 있으면 모든 것이 못처럼 보인다." : 모든 곳에 패턴을 적용하려는 오류를 범하면 안된다.
4. 디자인 패턴의 분류
4-1) 생성 패턴 (Creational patterns)
- 기존 코드의 유연성과 재사용을 증가시키는 객체 생성 매커니즘
4-2) 구조적 패턴 (Structural patterns)
- 구조를 유연하고 효율적으로 유지
- 객체와 클래스를 더 큰 구조로 조합하는 방법을 설명
4-3) 행동 패턴 (Behavioral patterns)
출처
What's a design pattern?