sungwony

[디자인패턴] 디자인패턴 입문 - 디자인패턴 본문

development/디자인패턴

[디자인패턴] 디자인패턴 입문 - 디자인패턴

일상이상삼상 2018. 7. 18. 11:09

디자인 패턴이란?


- 소프트웨어를 설계할 때 특정 맥락에서 자주 발생하는 고질적인 문제들이 발생했을 때 재사용할 수 있는 훌륭한 솔루션

- '콘텍스트(context)', '문제(problem)', '해결(solution)' 이라는 3개의 필수 요소로 구성된다

- 콘텍스트 : 문제가 발생하는 여러 상황. 즉, 패턴이 적용될 수 있는 상황을 나타낸다.

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

- 해결 : 문제를 해결하도록 설계를 구성하는 요소들과 요소들 사이의 관계, 책임, 협력 관계를 기술한다.

- 디자인 패턴은 서로의 의사소통을 원활하게 할 수 있다.

  ex) 클래스 객체를 하나만 생성하면 좋겠는데 public을 private이나 protected... -> 싱글턴 패턴을 적용해


GoF 디자인 패턴


 

 생성 패턴 

 구조 패턴 

 행위 패턴

 패턴 이름

 추상 팩토리(Abstract Factory)

 빌더(Builder)

 팩토리 메서드(Factory Method)

 프로토타입(Prototype)

 싱글턴(Singleton)

 어댑터(Adapter)

 브리지(Bridge)

 컴퍼지트(Composite)

 데커레이터(Decorator)

 퍼사드(facade)

 플라이웨이트(Flyweight) 

 프록시(Proxy)

 책임 연쇄(Chain of Responsibility)

 커맨드(Command)

 인터프리터(Interpreter)

 이터레이터(Iterator)

 미디에이터(Mediator)

 메멘토(Memento)

 옵서버(Observer)

 스테이트(State)

 스트래티지(Strategy)

 탬플릿 메서드(Template Method)

 비지터(Visitor)