- 다른 뜻에 대해서는 디자인 패턴(design pattern) 문서를 참조하십시오.
- 다른 뜻에 대해서는 디자인 패턴 (1994) 문서를 참조하십시오.
1 개요[ | ]
- software design pattern, design pattern
- 소프트웨어 디자인 패턴, 디자인 패턴, 설계 패턴
- 객체지향 설계에 자주 활용되는 구조 모음
- 객체지향 설계에서 나타나는 다양한 패턴들을 정리한 것[1]
- 소프트웨어 개발과정에서 발견된 설계 노하우를 정리한 것
- 특정 문맥에서 공통적으로 발생하는 문제에 대한 재사용가능한 해결책
- 소프트웨어 설계시 자주 나타나는 문제를 해결하기 위해 활용하는 설계구조 패턴
- 설계시 자주 반복되는 문제에 대한 해결책을 담고 있다.
- 디자인 패턴 이름을 통해 보다 명확하게 소통할 수 있다.
- 소프트웨어 설계상의 구조적인 문제를 해결하는 데에 도움이 된다.
- 디자인 패턴을 적용하면 오히려 설계가 복잡해지거나 수행속도가 저하될 수도 있다.
2 생성 패턴[ | ]
한국어명 | 영어명 | 비고 |
---|---|---|
추상 팩토리 ★★★ | Abstract factory | 부품을 조립해서 제품 생성 |
빌더 ★★ | Builder | 조립해서 제품 생성 |
팩토리 메소드 ★★★ | Factory method | 하위클래스에서 인스턴스 생성 |
게으른 초기화 ★ | Lazy initialization | |
멀티턴 | Multiton | |
객체 풀 | Object pool | |
프로토타입 패턴 ★★ | Prototype | 인스턴스를 복제해서 사용 |
Resource acquisition is initialization | ||
싱글턴 패턴 ★★★★ | Singleton | 하나의 인스턴스만 생성해서 공유사용 |
3 구조 패턴[ | ]
한국어명 | 영어명 | 비고 |
---|---|---|
어댑터 ★★★ | Adapter | 기존 객체를 원하는 형식으로 맞추어 사용 |
브리지 ★★ | Bridge | 기능 계층과 구현 계층을 분리 |
컴포지트 ★★★ | Composite | 그릇과 내용물을 동일시 |
데코레이터 ★★★ | Decorator | 장식과 내용물을 동일시 |
퍼사드 ★★★ | Facade | 단순한 창구 역할 |
플라이웨이트 패턴 ★★ | Flyweight | 동일한 것을 공유하여 사용 |
프론트 컨트롤러 패턴 | Front Controller | |
모듈 패턴 | Module | |
프록시 패턴 ★★★ | Proxy | 필요해지면 만드는 구조 |
4 행위 패턴[ | ]
한국어명 | 영어명 | 비고 |
---|---|---|
블랙보드 패턴 | Blackboard | |
역할 사슬 패턴 ★★ | Chain of responsibility) | 책임을 떠넘기는 구조 |
커맨드 패턴 ★★★ | Command | 명령을 클래스로 표현하는 구조 |
인터프리터 패턴 ★ | Interpreter | |
이터레이터 패턴 ★★★ | Iterator | 어떤 목록을 차례로 처리하는 구조 |
미디에이터 패턴 ★★ | Mediator | 중개자를 통해 처리하는 구조 |
메멘토 패턴 ★ | Memento | |
널 객체 | Null object | |
옵저버 패턴 ★★★ | Observer | 상태 변화를 통보 받는 구조 (이벤트 핸들러 구조) |
서번트 패턴 | Servant | |
Specification | ||
스테이트 패턴 ★★ | State | |
스트래티지 패턴 ★★★ | Strategy | 알고리즘을 교체할 수 있는 구조 |
템플릿 메소드 패턴 ★★★ | Template method | 상부에서는 기본 로직 구성, 구체적인 것은 하위로 위임 |
비지터 패턴 ★★ | Visitor | 데이터 구조를 방문하며 처리 |
5 병행성 패턴[ | ]
한국어명 | 영어명 | 비고 |
---|---|---|
액티브 객체 | Active Object | |
Balking | ||
바인딩 프로퍼티 | Binding properties | |
더블 체크 락킹 | Double-checked locking | |
이벤트 기반 비동기 처리 | Event-based asynchronous | |
Guarded suspension | ||
락 | Lock | |
메시징 디자인 패턴 | Messaging design pattern (MDP) | |
모니터 객체 | Monitor object | |
리액터 | Reactor | |
읽기-쓰기 락 | Read-write lock | |
스케줄러 | Scheduler | |
스레드 풀 | Thread pool | |
스레드 특정 스토리지 | Thread-specific storage |
6 같이 보기[ | ]
7 참고[ | ]
- ↑ 객체지향 분석/설계시에 도움이 된다.
편집자 Jmnote
로그인하시면 댓글을 쓸 수 있습니다.