{| class=”wikitable” ! colspan=”2” | 구분 ! 생성 !! 구조 !! 행위 |- | colspan=”2” | 의미 | 객체의 생성 방식을 결정하는 패턴 | 객체를 구조와 합성에 관한 패턴 | 객체의 상호작용하는 방법과
책임을 분산하는 방법에 대한 패턴 |- | rowspan=”2” | 범위 | 클래스 || 팩토리 메서드 || 어뎁터(클래스버전) || 인터프리터
템플릿 메서드 |- | 객체 | 추상 팩토리
빌더
프로토타입
싱글턴 | 어뎁터(객체버전)
브릿지
컴포지트
데코레이터
퍼사드
플라이웨이트
프록시 | 체인 오브 리스판시블
커멘드
인터프리터
메디에이터
메멘토
옵저버
스테이트
스트레티지
비지터 |- |}
{ | class=”wikitable” | | |
---|
! colspan=”3” | 생성 패턴 | | |
---|
| Singleton | | 하나의 인스턴스만 존재 하는 것 |
| Abstract Factory | | 객체들의 집합을 생성할 수 있는 인터페이스를 제공 |
| Factory Method | | 객체를 생성하는 인터페이스는 미리 정의 인스턴스 만드는 시점은 서브클래스로 미룸 |
| Builder | | 복합 객체의 생성과정과 표한 방법을 분리 하여 동일한 생성 절차에 다른 표현 결과 |
| prototype | | 런타임에서 원형을 복사하여 또 다른 객체 생성 |
| } | | |
{ | class=”wikitable” | | |
---|
! colspan=”3” | 구조 패턴 | | |
---|
| 어뎁터 | | 다른 인터페이스로 변환, 호환성 클래스 |
| 브릿지 | | 책임 분리 new CircleShp(1, 2, new DrawingAPI1()) |
| 컴포지트 | | 단일 객체, 복합객체 동일하게 관리 dict와 file을 둘다 가짐 |
| 디코레이터 | | super를 통해 동적으로 첨가 return 4500+super.cost(); |
| 퍼사드 | | 내부일 간략화, 외관패턴 |
| 플라이웨이트 | | 데이터 공유 외부에 자료 |
| 프록시 | | 본인과 대리인, 둘다 있어서 기능 제공 |
| } | | |
{ | class=”wikitable” | | |
---|
! colspan=”3” | 행위 패턴 | | |
---|
| 코멘드 | | 명령, 수신, 발동 요청을 나중에 실행 |
| 인터프리터 | | 문법 해석, 정의 |
| 이터레이터 | | 반복하여 순차적으로 내부 노출없이 요소들을 접근 |
| 메디에이터 | | N:M을 N:1로 중재 |
| 템플렛 | | 제네랄 |
| 비지터 | | 방문자, 기능만 추가, 비지터 기능을 엘리먼트가 씀 |
| 스테이트 | | 행동을 스테이트에게 전달 상태변경 |
| 스트레트지 | | 알고리즘 캡슐화, 인터페이스구현 |
| 옵저버 | | observers에게 notify |
| 체인 오브 리스판시블 | | 요청을 받을 수 있는 객체를 연쇄적으로 묶고, 실제 요청을 처리할 객체를 만날 때까지 요청을 전달 |
| 메멘토 | | 전체 속성 저장 |
| } | | |
=== 참고 링크 ===
- [http://i-bada.blogspot.com/2012/05/design-pattern.html 디자인 패턴(Design Pattern)]