심심한잉여의 잡동사니

[디자인 패턴] 디자인 패턴이란 본문

코딩일기/자료 구조

[디자인 패턴] 디자인 패턴이란

심심한잉여 2022. 11. 10. 14:54
반응형

디자인 패턴이란?
 - 디자인패턴이란 기존 환경 내에서 반복적으로 일어나는 문제들을 어떻게 풀어나갈 것인가에 대한 일종의 솔루션 같은 것
 - 디자인 패턴 계의 교과서로 불리는 GoF의 디자인패턴 에서는 객체지향적 디자인 패턴의 카테고리를 "생성 패턴", "구조 패턴", "행동 패턴" 3가지로 구분하고 있다.


디자인 패턴 구조
 - 콘텍스트
   ㄴ 문제가 발생하는 여러 상황을 뜻한다.  : 패턴이 적용 될 수 있는 상황을 뜻함
   ㄴ 경우에 따라서는 패턴이 유용하지 못한 상황을 나타내기도 한다.

 - 문제
   ㄴ 패턴이 적용되어 해결될 필요가 있는 여러 디자인 이슈들을 기술한다.
   ㄴ 이 때 여러 제약 사항과 영향력도 문제 해결을 위해 고려해야 한다.

 - 해결
   ㄴ 문제를 해결하도록 설계를 구성하는 요소들과 그 요소들 사이의 관계, 책임, 협력 관계를 기술한다.
   ㄴ 해결은 반드시 구체적인 구현 방법이나 언어에 의존적이지 않으며 다양한 상황에 적용할 수 있는 일종의 템플릿이다.


디자인패턴의 종류
 - 생성패턴(Creational)
   ㄴ 싱글톤(Singleton) - https://simsimhaningyeo.tistory.com/192
   ㄴ 추상 팩토리(Abstract Factory) - https://simsimhaningyeo.tistory.com/manage/posts/
   ㄴ 팩토리 메서드(Factory Method)
   ㄴ 빌더(Builder)
   ㄴ 프로토타입(Prototype)

 - 구조 패턴(Structural)
   ㄴ 어댑터(Adapter)
   ㄴ 브리지(Bridge)
   ㄴ 컴포짓(Composite)
   ㄴ 데커레이터(Decorator)
   ㄴ 퍼사드(Facade)
   ㄴ 플라이웨이트(Flyweight)
   ㄴ 프록시(Proxy)

 - 행위 패턴(Behavioral)
   ㄴ 책임 연쇄(Chain of Responsibility)
   ㄴ 커맨드(Command)
   ㄴ 인터프리터(Interpreter)
   ㄴ 미디에이터(Mediator)
   ㄴ 옵저버(Observer)
   ㄴ 이터레이터(iterator)
   ㄴ 메멘토(Memento)
   ㄴ 스테이트(State)
   ㄴ 스트래티지(Strategy)
   ㄴ 템플릿 메서드(Template Method)
   ㄴ 비지터(Visitor)

반응형