디자인 패턴
유사한 문제를 해결하기 위해 설계들을 분류하고 각 문제 유형별로 가장 적합한 설계를 일반화하여 체계적으로 정리해놓은 것이다. 소프트웨어 개발에서 효율성과 재사용성을 높일 수 있다.
GoF 디자인 패턴의 종류
1. 생성(Creational) 패턴 : 객체 생성 관련
- 추상 팩토리(Abstract Factory) : 제품군별 객체 생성
- 빌더(Builder) : 부분 생성을 통한 전체 객체 생성
- 팩토리 메서드(Factory Methods) : 대행 함수를 통한 객체 생성, 인스턴스 생성 결정은 서브클래스
- 프로토타입(Prototype) : 복제를 통한 객체 생성
- 싱글톤(Singleton) : 클래스 인스턴스가 하나만 만들어지고 그 인스턴스에 전역접근하여 사용하는 패턴
2. 구조(Structural) 패턴 : 클래스나 객체를 조합해 더 큰 구조를 만드는 패턴
- 어댑터(Adapter) : 클라이언트가 기대하는 다른 인터페이스로 전환
- 브리지(Brdige) : 인터페이스와 구현의 명확한 분리
- 컴포지트(Composite) : 객체간의 부분, 전체 관계 형성 및 관리, 재귀적 합성 이용
- 데커레이터(Decorator) : 상속없이 객체의 긴으을 동적으로 추가, 삭제(overloading)
- 퍼사드(Facade) : 서브시스템에 대한 통합된 인터페이스를 제공
- 플라이웨이트(Flyweight) : 작은 객체들의 공유
- 프록시(Proxy) : 대체(대리자) 객체를 통한 작업 수행
3. 행위(Behavioral) 패턴 : 객체나 클래스 사이의 알고리즘이나 책임 분배에 관련된 패턴
- 인터프리터(Interpreter) : 간단한 문법에 기반한 검증작업 및 작업 처리
- 옵서버(Observer) : 한 객체의 상태 변화에 따라 다른 객체의 상태도 연동되도록 일대다 객체 의존 관계를 구성하는 패턴. One source Multiple Use.
- 스테이트(State) : 객체의 상태에 따라 객체의 행위 내용을 변경해주는 패턴
- 스트래티지(Strategy) : 행위를 클래스로 캡슐화해 동적으로 행위를 자유롭게 바꿀 수 있게 해주는 패턴
- 템플릿 메서드(Template Method) : 어떤 작업을 처리하는 일부분을 서브 클래스로 캡슐화해 전체 일을 수행하는 구조는 바꾸지 않으면서 특정 단계에서 수행하는 내역을 바꾸는 패턴. 즉, 상위 클래스에서 기본 골격을 결정하고 하위 클래스에서 구체적 내용 정의.
- 커맨드(Command) : 실행될 기능을 캡슐화함으로써 주어진 여러 기능을 실행할 수 있는 재사용성이 높은 클래스를 설계하는 패턴
- 이터레이터(Iterator) : 동일 자료형의 여러 객체 순차 접근
- 미디에이터(Mediator) : 객체들 간의 상호작용을 객체로 캡슐화. M:N 객체 관계를 M:1로 단순화
- 메멘토(Memento) : 객체 이전 상태 복원 또는 보관
- 비지터(Visitor) : 오퍼레이션이 처리할 요소의 클래스를 변경하지 않고도 새로운 오퍼레이션을 정의
- 책임 연쇄(Chain of Responsibility) : 수행 가능 객체군까지 요청 전파
'CS' 카테고리의 다른 글
EAI (Enterprise Application Integration) (0) | 2021.06.05 |
---|---|
디자인패턴 (0) | 2020.09.03 |
[SW공학] 결합도(Coupling)와 응집도(Cohesion) (0) | 2020.06.14 |
[기초 지식] IT 용어 정리 (0) | 2019.12.11 |
[기초 지식] sample rate, channel, bit rate란? (0) | 2019.09.20 |