"디자인 패턴"의 두 판 사이의 차이

40번째 줄: 40번째 줄:


==구조 패턴==
==구조 패턴==
* ★★ Adapter ([[어댑터 패턴]])
{| class='wiktiable'
* ★ Bridge ([[브리지 패턴]]) : 기능 계층과 구현 계층을 분리
|-
* ★★ Composite ([[컴포지트 패턴]])
| [[어댑터 패턴]] ★★
* ★★ Decorator ([[데코레이터 패턴]])
| Adapter
* ★★ Facade ([[퍼사드 패턴]])
|
* ★ Flyweight ([[플라이웨이트 패턴]])
|-
* Front Controller
| [[브리지 패턴]]
* Module
| Bridge
* ★★ Proxy ([[프록시 패턴]])
| 기능 계층과 구현 계층을 분리
|-
| [[컴포지트 패턴]] ★★
| Composite
|
|-
| [[데코레이터 패턴]] ★★
| Decorator
|
|-
| [[퍼사드 패턴]] ★★
| Facade
|
|-
| [[플라이웨이트 패턴]]
| Flyweight
|
|-
| [[프론트 컨트롤러 패턴]]
| Front Controller
|
|-
|
| Module
|
|-
| [[프록시 패턴]] ★★
| Proxy
|
|}


==행동 패턴==
==행동 패턴==

2016년 5월 15일 (일) 18:44 판

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 주석

  1. 객체지향 분석/설계시에 도움이 된다.

8 참고 자료

문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}