Computer Science/정보처리기사

[정보처리기사] 디자인 패턴의 의미와 종류

minjiwoo 2022. 1. 20. 15:18
728x90

1. 디자인 패턴 

  • 소프트웨어 공학의 소프트웨어 설계에서 공통적으로 발생하는 문제에 대해 자주 쓰이는 설계 방법을 정리한 패턴이다. 
  • 개발의 효율성과 유지보수성 등의 품질이 높아지며, 프로그램의 최적화에 도움이 된다. 

 

2. 디자인 패턴 구성 요소

  • 패턴의 이름
  • 문제 및 배경
  • 솔루션
  • 사례
  • 결과
  • 샘플 코드 

 

3. 디자인 패턴 유형 

1) 목적 : 생성 / 구조 / 행위

  • 생성 : 객체 인스턴스 생성에 관여, 클래스 정의와 객체 생성 방식을 구조화, 캡슐화를 수행하는 패턴
  • 구조 : 더 큰 구조 형성 목적으로 클래스나 객체의 조합을 다루는 패턴
  • 행위 : 클래스나 객체들이 상호 작용하는 방법과 역할 분담을 다루는 패턴 

2) 범위 : 클래스 / 객체

 

4. 디자인 패턴 종류 

 

i ) 생성 패턴

Builder 생산 단계를 캡슐화 하여 구축 공정을 동일하게 이용하도록 하는 패턴
Prototype 복사하여 새 개체를 생성할 수 있도록 하는 패턴
Factory Method 객체를 생성하기 위한 인터페이스를 정의하여 어떤 클래스가 인스턴스화 될 것인지서브 클래스가 결정하도록 하는 패턴
Abstract Factory 생성 군들을 하나에 모아놓고 팩토리 중에서 선택하게 하는 패턴
Singleton 유일한 하나의 인스턴스를 보장하는 패턴

 

ii ) 구조 패턴 

Bridge 추상과 구현을 분리하여 결합도를 낮춘 패턴
Decorator 소스를 변경하지 않고 기능을 확장하도록 하는 패턴
Facade 하나의 인터페이스를 통해 느슨한 결합을 제공하도록 하는 패턴
Flyweight 대량의 작은 객체들을 공유하는 패턴
Proxy 대리인이 대신 그 일을 처리하는 패턴
Composite 개별 객체와 복합 객체를 클라이언트에서 동일하게 사용하도록 하는 패턴
Adapter 인터페이스로 인해 함께 사용하지 못하는 클래스를 함께 사용하도록 하는 패턴 

 

iii ) 행위 패턴 

Interpreter 언어 규칙 클래스를 이용하는 패턴
Template Method 알고리즘 골격의 구조를 정의한 패턴
Chain of Responsibility 객체들끼리 연결 고리를 만들어 내부적으로 전달하는 패턴
Command 요청 자체를 캡슐화하여 파라미터로 넘기는 패턴
Iterator 내부 표현은 보여주지 않고 순회하는 패턴
Mediator 객체 간 상호작용을 캡슐화한 패턴
Memento 상태 값을 미리 저장해 두었다가 복구하는 패턴
Observer 상태가 변할 때 의존자들에게 알리고, 자동 업데이트하는 패턴
State 객체 내부 상태에 따라서 행위를 변경하는 패턴
Strategy 다양한 알고리즘을 캡슐화하여 알고리즘 대체가 가능하도록 한 패턴
Visitor 오퍼레이션별도의 클래스에 새롭게 정의한 패턴

 

728x90