디자인 패턴

Jmnote (토론 | 기여)님의 2022년 4월 29일 (금) 02:01 판 (→‎구조 패턴)
  다른 뜻에 대해서는 디자인 패턴(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 참고

  1. 객체지향 분석/설계시에 도움이 된다.
문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}