
**
소프트웨어 디자인 패턴**(software design pattern)은 소프트웨어 공학의 소프트웨어 디자인에서 특정 문맥에서 공통적으로 발생하는 문제에 대해 재사용 가능한 해결책이다.
출처 : 위키피디아 - 소프트웨어 디자인 패턴
| 생성(Creational) 패턴 | 구조(Structural) 패턴 | 행동(Behavioral) 패턴 |
|---|---|---|
| Abstract Factory | Adapter | Chain of Responsibility |
| Builder | Bridge | Command |
| Factory Method | Composite | Interpreter |
| Prototype | Decorator | Iterator |
| Singleton | Facade | Mediator |
| Flyweight | Memento | |
| Proxy | Observer | |
| State | ||
| Strategy | ||
| Template Method | ||
| Visitor |
🪛 생성
Abstract Method : 서로 의존, 연관하는 객체들의 그룹으로 생성하여 추상적으로 표현한 패턴Builder : 생산 단계를 캡슐화하여 구축 공정을 동일하게 이용하도록 한 패턴으로, 작게 분리된 인스턴스를 건축하듯이 조합하여 객체 생성Prototype : 원본 객체를 복제하는 방법으로 객체를 생성Factory Method : 객체 생성을 서브클래스에서 처리하도록 분리하여 캡슐화한 패턴으로 가상 생성자 패턴이라고도 부름Singleton : 유일한 하나의 인스턴스를 보장하도록 하는 패턴🏗️ 구조
Adapter : 인터페이스를 다른 클래스가 재사용할 수 있도록 변환Bridge : 서로가 독립적으로 확장할 수 있도록 구성한 패턴으로 추상과 구현을 분리Composite : 개별 객체와 복합 객체를 클라이언트에서 동일하게 사용하도록 하는 패턴으로 복합 객체와 단일 객체를 구분없이 다루고자 할 때 사용Decorator : 소스를 변경하지 않고 기능을 확장하도록 하는 패턴으로 부가 기능 구현을 위해 다른 객체를 덧붙임