디자인 패턴
- 개념
- 모듈의 세분화된 역할이나 모듈들 간의 인터페이스 구현 방식을 설계할때 참조할 수 있는 전형적인 해결 방식
- 소프트웨어를 설계할 때 자주 발생하는 문제들에 대한 재사용 가능한 해결책
- 디자인 패턴이 주는 이점
- Don’t reinvent the wheel (http://egloos.zum.com/link/v/4188543)
- 공통 언어 역할을 하게 되어, 경험많은 이들이 공통의 언어를 이용하면 그렇지 않을 경우보다 좀 더 효율적으로 협동 작업을 할 수 있게 된다
- 불필요없는 논쟁을 줄일 수 있다.(이미 있는 것을 다시 개발 안 해도 됨)
GOF 디자인 패턴
여기서 GOF라는 수식어는 단순하게 Gang of Four 의 약자로
GOF 디자인 패턴을 만든 4명의 개발자를 의미한다.(본인들이 지은 이름이다 한글로 번역하면 '사인방')
이 사인방은 자신들의 개발 방식과 노하우를 축적한 것을 패턴으로 정립해서 1995년 제시하였는데 이것이 GOF 디자인 패턴이다.
개괄적인 구조는 아래와 같다.
이러한 GOF 디자인 패턴은 보다시피 생성, 구조, 행위 패턴으로 구분되어 있다.
생성패턴
의미
추상화를 통해 인스턴스를 생성하는 방법에 대한 패턴들을 포함한다.
패턴
- 싱글톤
- 팩토리
- 추상 팩토리
- 빌더
- 프로토타입
구조패턴
의미
더 큰 구조를 위해 클래스와 객체를 합성하는 방법에 대한 패턴들을 포함한다.
패턴
- 어댑터
- 합성
- 프록시
- 플라이웨이트
- 파시드
- 브릿지
- 데코레이터
행동패턴
의미
객체들 간의 교류, 커뮤니케이션 방법에 대한 패턴들을 포함한다.
패턴
- 템플릿 메소드
- 중재자
- 책임연쇄
- 옵저버
- 전략
- 커맨드
- 상태
- 방문자
- 반복자
- 해석자
- 기념품