본문 바로가기
Study/Software Engineering

디자인 패턴(Design Patterns) 카탈로그의 조직화 (23개)

by SeulKom 2010. 1. 7.

패턴을 분류하는 기준
 1. 목적 : 패턴이 무엇을 하는지 정의
   - 생성 : 객체의 생성 과정에 관여
   - 구조 : 클래스나 객체의 합성에 관한 패턴
   - 행동 : 클래스나 객체들이 상호작용하는 방법과 책임을 분산하는 방법 정의

 2. 범위 : 클래스에 적용하는지 객체에 적용하는지 구분
  - 클래스 패턴 : 클래스와 서브클래스 간의 관련성(주로 상속)을 다루는 패턴
                        컴파일 타임에 정적으로 결정
  - 객체 패턴 : 객체 관련성을 다루는 패턴
                     런타임에 변경할 수 있으며 클래스 패턴보다 더 동적

생성-클래스 패턴 : 객체를 생성하는 책임의 일부를 서브클래스가 담당하도록 위임
생성-객체 패턴 : 객체를 생성하는 책임의 일부를 다른 객체에 전달

구조-클래스 패턴 : 상속을 이용해서 클래스를 복합
구조-객체 패턴 : 객체를 합성하는 방법을 정의

행동-클래스 패턴 : 상속을 이용해서 알고리즘과 제어 흐름을 기술
행동-객체 패턴 : 하나의 작업을 수행하기 위해 객체 집합이 어떻게 협력하는지 기술


목적

생성

구조

행동

범위

클래스

Factory Method

Adapter (class)

Interpreter

Template Method

객체

Abstract Factory

Builder

Prototype

Singleton

Adapter (object)

Bridge

Composite

Decorator

Facade

Flyweight

Proxy

Chain of Responsibility

Command

Interpreter

Mediator

Memento

Observer

State

Strategy

Visitor





패턴을 조직하는 또 다른 방법
  - 패턴간의 참조 관계에 따라 관리