소프트웨어 설계시 기존 경험, 다양한 경험 중요한데
이러한 지식을 공유하기 위해 나온것이 GoF(Gang of Four)의 디자인 패턴
객체지향 개념에 따른 설계 중 재사용할 경우, 유용한 설계를 디자인 패턴으로 정리해둔 것
총 23개
개발자간 원활한 소통
소프트웨어 구조 파악 용이
재사용으로 개발 시간 단축
설계 변경 요청 시 유연한 대처
객체지향 설계 및 구현
초기 투자 비용 부담
객체를 생성 관련
Factory Method
Singleton
Prototype
Builder
Abstract Factroy
Chaining
프로그램 내 자료구조 및 인터페이즈 구조 관련
프로그램 구조를 설계하는데 활용
클래스 및 객체들의 구성을 통해 더 큰 구조를 만들 수 있음
큰 규모 → 원래 많은 클래스들이 의존성을 가짐 ⇒ 이런 복잡한 구조를 개발하기 쉽게 + 유지보수 편리하게
Adapter
Composite
Bridge
Decorator
Facade
Flyweight
Proxy
반복적으로 사용되는 객체들의 상호작용 관련
클래스 및 객체들의 상호작용 방법과 책임을 분산하는 방법
독립적으로 일을 처리하고자 할 때 사용
Template Method
Interpreter
Iterator
Observer
Strategy
Visitor
Chan of responsibillity
Command
Mediator
State
Memento