디자인 패턴
디자인 패턴
프로그램 개발에서 자주 발생하는 문제를 해결하기 위한 방법 중 하나로, 과거의 소프트웨어 개발 과정에서 발견된 설계의 노하우를 축적하여 이름을 붙여, 이후에 재사용하기 좋은 형태로 특정의 규약을 묶어서 정리한 해결책1
- “바퀴를 다시 발명하지 마라(Don’t reinvent the wheel)”
- = 이미 만들어져 잘 되는 것을 처음부터 다시 만들 필요가 없다는 뜻
패턴이란?
프로그램 개발에서 설계 문제와 이를 처리하는 해결책에도 공통점이 있는 데 이런 유사점을 패턴이라 한다.
디자인 패턴 종류
GoF(Gang of Fout)2가 23가지의 디자인 패턴을 정리하고 각각의 디자인 패턴을 생성(Creational), 구조(Structural), 행위(Behavioral) 3가지로 분류했다.
생성(Creational) 패턴
- 추상 팩토리(Abstract Factory)
- 빌더(Builder)
- 팩토리 메서드(Factory Methods)
- 프로토타입(Prototype)
- 싱글턴(Singleton)
구조(Structural) 패턴
- 어댑터(Adapter)
- 브리지(Bridge)
- 컴퍼지트(Composite)
- 데커레이터(Decorator)
- 퍼사드(Facade)
- 플라이웨이트(Flyweight)
- 프록시(Proxy)
행위(Behavioral) 패턴
- 책임 연쇄(Chain of Responsibility)
- 커맨드(Command)
- 인터프리트(Interpreter)
- 이터레이터(Iterator)
- 미디에이터(Mediator)
- 메멘토(Memento)
- 옵저버(Observer)
- 스테이트(State)
- 스트래티지(Strategy)
- 템플릿 메서드(Template Method)
- 비지터(Visitor)
1: 디자인 패턴 정의 - 위키백과
2: 에리히 감마(Erich Gamma), 리차드 헬름(Richard Helm), 랄프 존슨(Ralph Johnsom), 존 블리시디스(John Vissides)를 말한다. 소프트웨어 개발 영역에서 디자인 패턴을 구체화하고 체계화한 사람들이다.