디자인 패턴 (Design Pattern)

1. 디자인 패턴의 개념 및 필요성

개념특징
소프트웨어 설계 시 특정 문맥에서 공통적으로 발생하는 문제 해결을 위해 재사용 가능한 해결책객체지향 설계
– 공통된 설계 문서
– 의사소통 도구로 활용
  • 디자인 패턴은 프로그램 언어로 즉시 사용 가능한 완성된 디자인은 아니며, 상황에 맞게 사용될 수 있는 문제 해결에 대한 서술이나 템플릿을 의미

 

2. 디자인 패턴의 구조 및 구성요소

구분설명
구조
구성
요소
컨텍스트
(Context)
– 문제 발생의 요소를 제공하는 상황, 환경 요소
– 패턴을 적용할 수 있는 상황, 환경
문제
(Problem)
– 패턴이 적용되어 해결이 필요한 이슈
– 여러 제약 사항, 영향력을 포함
해결
(Solution)
– 문제 해결을 위한 요소 및 관계 기술
– 문제 해결을 위한 다양한 템플릿
  • 컨텍스트, 문제, 해결이 필수 구성요소로 구성이며, 대표적으로 GoF(Gang of Four)가 정의한 디자인 패턴은 패턴을 구체화/체계화하여 생성 패턴, 구조 패턴, 행동 패턴의 23 개 패턴으로 정리하여 SW 개발 영역에서 문제 해결

 

3. GoF가 정의한 디자인 패턴의 기능과 종류

(1) 디자인 패턴의 기능

디자인 패턴기능
생성 패턴
(Creational Pattern)
인스턴스를 만드는 절차를 추상화하는 패턴으로, 사용 클래스 정보를 캡슐화 시키고, 생성에 관련된 결정을 통해 유연성 제공
구조 패턴
(Structural Pattern)
더 큰 구조를 형성 위해 클래스와 객체 합성 방법을 제공하는 패턴으로, 객체를 조직화하는 일반적인 방식 제시하고 상속 기법 이용하여 인터페이스 구현
행동 패턴
(Behavioral Pattern)
객체들을 어떻게 연결시킬 것인지에 더 중점을 두는 패턴으로, 문제 해결의 알고리즘을 객체에 정의하는 것에 초점을 두고 객체행위를 조직화, 관리, 연합하고 객체나 클래스 연동에 대한 유형 제시

(2) 디자인 패턴의 종류

구분생성 패턴 (5개)구조 패턴 (7개)행동 패턴 (11개)
클래스– Factory method– Adaptor (Class)– Interpreter
– Template method
객체– Abstract Factory
– Builder
– Prototype
– Singleton
– Adaptor (Object)
– Bridge
– Composite
– Decorator
– Façade
– Flyweight
– Proxy
– Chain of Responsibility
– Command
– Iterator
– Mediator
– Memento
– Observer
– State
– Strategy
– Visitor
  • 디자인 패턴을 제대로 이해하고, 패턴 사이의 관계를 확실히 파악하여 효과적인 소프트웨어 설계 필요

 
[참고]

  • 프로텍미디어, GoF의 디자인 패턴 :재사용성을 지닌 객체지향 소프트웨어의 핵심요소

콘텐츠 사용 시 출처 표기 부탁 드리고, 댓글은 큰 힘이 됩니다^^