728x90
반응형

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:클래스 변경없이 오퍼레이션을 추가

728x90
Posted by Mr. Slumber
,