**
소프트웨어 디자인 패턴**(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
: 소스를 변경하지 않고 기능을 확장하도록 하는 패턴으로 부가 기능 구현을 위해 다른 객체를 덧붙임