1. 디자인패턴 : 반복적으로 나타나는 문제들을 해결해 온 전문가들이 경험을 모아서 정리한 일관된 솔루션
2. 디자인패턴의 4요소, 원칙
1) 4요소(패,문,해,결) : 패턴이름, 문제, 해법, 결과
2) 원칙 : 캡슐화, 위임, 인터페이스, Loosely Coupling, 개방&폐쇄, 의존관계
3. 디자인패턴의 형식과 내용
1) 이름(Name) : 이름은 핵심을 간결하게 전달해줌
2) 종류(Classification) : 생성(객체 생성과 관련), 행위(클래스, 객체의 정적인 구조와 관련), 구조(클래스와 객체의 반응과 책임 할당)
3) 의도(Intent) : 해당 디자인패턴이 무엇을 하는지
4) 별칭(Also Known As) : 공식적인 이름 외에 잘 알려진 다른 명칭
5) 동기(Motivation) : 패턴 안에서 클래스나 객체구조가 어떻게 문제를 해결하는지 설명해 주는 일종의 시나리오
6) 활용성(Applicability) : 해당 패턴을 어떤 상황에 적용할 수 있을까?
7) 구조(Structure) : 객체 사이의 요청과 협력 관계의 순차를 표현하기 위한 상호작용 다이어그램 이용
8) 참여자(Participant) : 주어진 패턴을 구성하고 책임을 수행하는 클래스나 객체
9) 협력방법(Collaboration) : 작업을 수행하기 위한 참여자들 간의 협력 관계를 정의
10) 결과(Consequence) : 이 패턴이 자신의 목표를 어떻게 지원할까
11) 구현(Implementation) : 패턴 구현 시의 주의해야 할 함정, 힌트, 기법은 무엇인지
12) 예제코드(Sample Code) : 주어진 패턴을 실제로 C++나 스몰토크를 이용해서 어떻게 구현할 수 있는가를 보여주는 코드
13) 잘 알려진 사용 예(Known Use) : 실제 시스템에서 찾아볼 수 있는 패턴들의 예
14) 관련 패턴(Related Pattern) : 이 패턴과 밀접하게 관련된 다른 패턴들은 무엇인지
[디자인 패턴 유형]
1. 패턴 종류
유형 | 설명 |
생성패턴 | 1) 객체의 생성 방식을 결정 2) 클래스의 정의, 객체 생성방식의 구조화, 캡슐화 |
구조패턴 | 1) 객체를 조직화 하는 일반적인 방법 제시 2) 별도 클래스 라이브러리 통합시 유용,런타임시 객체 구성구조 변경가능 3) 객체 구성에 유동성과 확장성 추가가 가능 |
행위패턴 | 1) 객체의 행위를 조직화 관리,연합하고 객체나 클래스의 연동에 대한 유형 제시하고자 할 때 사용됨 2) 런타임 시 복잡한 제어 흐름을 결정짓는데 사용 |
2. 패턴 이름과 사용범위
유형 | 사용범위 |
생성패턴 | 1) 클래스 : Factory Method:인스턴스화 될 객체의 서브클래스 2) 객체 : Abstract Factory:제품객체군, Builder:복합 객체 생성, Proto Type:인스턴스화 될 객체 클래스, Singleton:인스턴스가 하나일 때 |
구조패턴 | 1) 클래스 : Adapter(Method):객체 인터페이스 2) 객체 : Bridge:객체구현, Composite:객체의 합성과 구조, Decorator:서브클래싱 없이 객체의 책임성, Façade:서브시스템에 대한 인터페이스 Flyweight:객체 저장 비용, Proxy:객체 접근 방법 |
행위패턴 | 1) 클래스 : Interpreter:언어의 문법과 해석, Template:알고리즘 단계 2) 객체: Command:요청처리시점/방법, Chain of Responsibility:요정처리 객체, Iterator:집합객체 요소 접근/ 순회방법, Mediator:객체 상호 작용, Memento:객체 정보 외부저장, Observer:종속객체 상태변경, State: 객체 상태, Strategy:알고리즘, Visitor:클래스 변경없이 오퍼레이션을 추가 |
'02.SW' 카테고리의 다른 글
데브옵스 (DevOps) - CI/CD (0) | 2024.02.06 |
---|---|
아키텍처 - 마이크로서비스, MSA - 서비스 설계 (0) | 2024.02.06 |
아키텍처 - 마이크로서비스, MSA - 설계 패턴 (1) | 2024.02.06 |
SW 아키텍처 - 패턴 - MVC (Model View Control) (0) | 2024.02.06 |
프로젝트 관리 - 공공 SW - 디지털행정서비스 국민신뢰 제고 대책 (0) | 2024.02.06 |