Learning
토픽 50 / 192·소프트웨어 설계와 아키텍처

디자인 패턴 (Design Pattern)

디자인 패턴 (Design Pattern)

소프트웨어 설계에서 반복 문제에 대한 재사용 가능한 해결책, GoF(1994) 23종 정형화

구성요소: 패턴 이름, 문제(Problem), 해결(Solution), 결과(Consequence)

분류(GoF 23종)

  • 생성 패턴(5종): Singleton(유일 인스턴스), Factory Method(서브클래스 위임), Abstract Factory(객체군 생성), Builder(단계별 생성), Prototype(복제)
  • 구조 패턴(7종): Adapter(인터페이스 연결), Decorator(동적 기능 추가), Proxy(접근 제어), Facade(통합 인터페이스), Composite(트리 구조), Bridge, Flyweight
  • 행위 패턴(11종): Strategy(알고리즘 교체), Observer(상태 통지), Command(요청 객체화/Undo), State(상태별 행위), Template Method(골격 정의) 외 6종

장점: 재사용성, 의사소통, 품질 향상

단점: 과도한 적용, 학습 곡선

비교: GoF 패턴(객체지향/23종) vs 아키텍처 패턴(시스템구조) vs 이디엄(언어종속/구현수준)

연관: SOLID, 객체지향, 리팩토링