도도한 개발자

[정보처리기사] 디자인 패턴 본문

자격증/정보처리기사

[정보처리기사] 디자인 패턴

Kiara Kim 2022. 5. 1. 20:00

@ 디자인 패턴(Design Pattern)

: 소프트웨어 공학의 소프트웨어 설계에서 공통으로 발생하는 문제에 대해 자주 쓰이는 설계 방법 정리한 패턴

 

@ 디자인 패턴 유형

구분 유형 설명
목적 생성 객체 인스턴스 생성에  관여, 클래스 정의와 객체 생성 방식을 구조화, 캡슐화 수행 패턴
구조 더 큰 구조 형성 목적으로 클래스나 객체의 조합을 다루는 패턴
범위 행위 클래스나 객체들이 상호 작용하는 방법과 역할 분담을 다루는 패턴
클래스 클래스 간 관련성(컴파일 타임에 정적으로 결정)
객체 객체 간 관련성(런타임에 동적으로 결정)

 

@ 디자인 패턴의 종류

 

[생성패턴]

패턴 설명
Builder 복잡한 인스턴스 조립하여 만드는 구조. 복합 객체 생성 시 객체를 생성하는 방법(과정)과 객체를 구현(표현)하는 방법을 분리
Prototype 처음부터 일반적인 원형을 만들어 놓고, 복사한 후 필요한 부분만 수정하여 사용
Factory Method 상위 클래스에서 객체를 생성하는 인터페이스 정의, 하위 클래스에서 인스턴스 생성
Abstract Factory 주체적인 클래스에 의존 않고 서로 연관되거나 의존적인 객체들의 조합을 만드는 인터페이스 제공. 동일한 주제의 다른 팩토리를 묶음
Singleton 전역 변수 사용 X, 객체 하나만 생성. 생성된 객체 어디서든 참조 가능하게

 

[구조 패턴]

패턴 설명
Brigde 기능의 클래스 계층과 구현의 클래스 계층을 연결하고 구현부에서 추상 계층을 분리해 추상화된 부분과 실제 구현 부분을 독립적으로 확장
Decorator 기존에 구현되어 있는 클래스에 필요한 기능을 추가해 나가는 패턴. 상속의 대안으로 사용
Facade 복잡한 시스템에 대해 단순한 인터페이스 제공. 결합도 낮춰 시스템 구조에 대한 파악 쉽게
Flyweight 본직적인 요소를 클래스화 하여 클래스의 경량화 목적으로 하는 패턴. 가상 인스턴스 제공
Proxy 실체 객체에 대한 대리 객체. 메모리 용량 아끼고 정보 은닉 역할
Composite 객체들의 관계를 트리 구조로 구성하여 부분-전체 계층 표현
Adapter 기존 클래스 재사용 위해 중간에서 맞춰주는 역할. 클래스 패턴(상속) - 인스턴스 패턴(위임)

 

[행위 패턴]

Meditator / Interpreter / Iterator / Template Methid / Observer / State / Visitor / Command / Strategy / Memento / Chain of Responsibility