정보처리기사/요약정리

[필기핵심요약] 서버프로그램 구현 - 디자인패턴

새싹개발자 2020. 10. 5. 21:47

디자인 패턴 (20년 2회 실기 기출) 

분류 생성패턴 구조패턴 행위패턴
종류 Factory Method
Abstract Factory
Builder
Prototype
Singleton
Adapter
Bridge
Composite
Decorator
Facade
Flyweigh
Proxy
Interpreter
Template Method
Chain of Responsibility
Command
Iterator
Mediator
Memento
Observer
State
Strategy
Visitor

생성 패턴

- Factory Method

: 어떤 객체를 생성할지를 서브클래스가 결정하도록 하고 책임을 위임하는 패턴, 인터페이스는 정의하지만 어떤 클래스의 인스턴스를 생성할 지에 대한 결정은 서브 클래스가 정의

- Abstract Factory

: 여러 객체 그룹을 생성할 때 유용, 연관된 서브 클래스를 묶어 한 번에 교체하는 것 가능

- Builder

: 생성 단계를 캡슐화 하여 구축 공정을 동일하게 이용, 동일한 생성 절차를 통하여 서로 다른 결과를 만들 수 있게 해주는 패턴

- Prototype

: 원본 객체를 복사하여 새 객체를 생성할 수 있도록 하는 패턴

- Singleton

: 오직 하나의 객체만을 가지도록 하는 패턴

 

구조패턴

- Adapter

: 구조가 다른 클래스 연결, 인터페이스가 일치하지 않을 때 사용

- Bridge

: 구현부에서 추상층을 분리하여 각자 독립적으로 확장할 수 있게 하여 결합도 낮춘 패턴, 기능과 구현을 두 개의 별도 클래스로 구현

- Composite

: 부분-전체 계층을 표현하며 개별 객체와 복합 객체를 동일하게 다루도록 하는 패턴

- Decorator

: 부가적인 기능을 추가하기 위해 다른 객체들을 덧붙이는 방식

- Facade

: 단순화된 하나의 인터페이스를 제공하는 패턴

- Flyweigh

: 공유를 통하여 많은 유사한 객체들을 효과적으로 지원

- Proxy

: 객체의 대리자를 이용하여 원래 객체의 작업을 대신 처리하는 패턴

 

행위패턴

- Interpreter

: 언어 규칙 클래스를 이용하는 패턴, 언어의 문법 정의, 해석

- Template Method

: 알고리즘 골격의 구조를 정의한 패턴, 전체 일을 수행하는 구조는 바꾸지 않고 특정 단계에서 수행하는 내용을 바꾸는 패턴

- Chain of Responsibility

: 객체들끼리 연결고리 만들어 내부적으로 전달하는 패턴, 한 객체가 처리하지 못하면 다음 객체에게 요청 

- Command

: 요청을 캡슐화할 수 있으며, 매개변수를 써서 여러 다른 요청을 추가할 수 있는 패턴

- Iterator

: 내부 표현은 보여주지 않고 모든 항목에 순차적으로 접근하는 패턴, 반복이 필요할 때 사용

- Mediator

: 객체 간 상호작용을 캡슐화한 패턴

- Memento

: 객체의 상태 값을 미리 저장해 두었다가 복구하는 패턴, 이전 상태로 돌릴 수 있다.

- Observer

: 한 객체의 상태 변화가 일어났을 때, 그 객체에 의존하는 다른 객체들에게 알리고, 자동으로 내용이 갱신되는 방식으로 일대다 의존성을 가지는 패턴

- State

: 객체 내부 상태에 따라서 동일한 동작을 다르게 처리하는 패턴, 다형성

- Strategy

: 다양한 알고리즘을 캡슐화하여 알고리즘을 교환하여 사용할 수 있도록 한 패턴, 동일한 계열의 알고리즘들을 개별적으로 캡슐화, 사용자에 영향 없이 알고리즘 변경 가능

- Visitor

: 객체의 구조와 처리 기능을 분리시키는 패턴, 캡슐화 위배