본문 바로가기
이론/디자인패턴

[디자인패턴] Design Pattern 의 효용과 종류

by 6161990 2021. 6. 4.

📌 Design Pattern 의 효용

 

자주 사용하는 설계 패턴을 정형화해서 이를 유형별로 가장 최적의 방법으로 개발을 할 수 있도록 정해둔 설계.

알고리즘과 유사하지만, 명확하게 정답이 있는 형태는 아니며, 프로젝트의 상황에 맞추어 적용 가능하다.

 


A식으로 로직을 구성하면 템플릿 메소드 패턴.

B식으로 로직을 구성하면 옵저버 메소드 패턴.

: 해결하려는 문제가 무엇이느냐에 따라서 그에 적당한 구조를 선택해 사용한다.

 

 


📍 Gof 디자인 패턴

소프트웨어를 설계 할 때는 기존의 경험이 매우 중요하다. 사람들이 개발을 하면서 축적되온 지식와 패턴들을 공유하기 위해서 나온 것이 Gang of Four 의 디자인 패턴이다. 객체지향 개념에 따른 설계 중 재사용할 경우 유용한 설계를 디자인 패턴으로 정리해 둔 것이다.

 

 

 

디자인 패턴의 효용

"어떤 식으로 짓겠다" 공유하면 커뮤니케이션이 원활하게된다. 

EX) template method pattern 템플릿을 사용함에 따라 미리 잘 만들어진 모범답안을 공부할 수 있으며, 템플릿을 이용할 때 어떤 도구를 어떤 방법으로 구현하는가에 대한 책임은 사용자에게 위임한다.

 



생성패턴

객체를 생성하는 것과 관련된 패턴으로,

객체의 생성과 변경이 전체 시스템에 미치는 영향을 최소화하고, 코드의 유연성을 높여준다.

  • Factory Method
  • Singleton
  • Prototype
  • Builder
  • Abstract Factory
  • Chaining

 



구조패턴

프로그램 내의 자료구조나 인터페이스 구조 등 프로그램 구조를 설계하는데 활용될 수 있는 패턴클래스를 말한다. 객체들의 구성을 통해서 더 큰 구조를 만들 수 있게 해준다.

큰 규모의 시스템에서는 많은 클래스들이 서로 의존성을 가지게 되는데, 구조패턴을 이용하면 복잡한 구조를 유지보수하기 쉽도록 설계할 수 있다.

  • Adapter
  • Composite
  • Bridge
  • Decorator
  • Facade
  • Flyweight
  • Proxy



행위패턴

반복적으로 사용되는 객체들의 상호작용을 패턴화한 것으로, 클래스나 객체들이 상호작용하는 방법과 책임을 분산하는 방법을 제공한다. 행위패턴은 행위 관련 패턴을 사용하여 독립적으로 일을 처리하고자 할때 사용한다.

  • Templete Method
  • Interpreter
  • Iterator
  • Observer
  • Strategy
  • Visitor
  • Chain of responsibility
  • Command
  • Mediator
  • State
  • Memento