코딩 기록들

스프링 입문 2. 디자인패턴이란? 본문

스프링 입문

스프링 입문 2. 디자인패턴이란?

코딩펭귄 2023. 12. 26. 12:05
디자인패턴이란?
  • 자주 사용하는 설계패턴을 정형화해서 유형별로 최적의 방법으로 개발할수있도록 정해둔 설계 알고리즘과 유사함.
  • 명확하게  정답이있는 형태는 아니며, 프로젝트 상황에맞춰 적용가능
Gof 디자인패턴 (Gang of Four)
  • 객체지향 개념에 따른 설계중 재사용할경우 유용한 설계를 미리 디자인패턴으로 정리해 둔 것
  • 총 23개로 구성됨
  •  
디자인패턴 장점
  • 개발자간의 원활한 소통이 가능
  • 소프트웨어 구조파악 용이
  • 재사용을 통한 개발시간 단축
  • (enterprise 확장시)설계변경 요청에 대한 유연한 대처 가능
디자인패턴 단점
  • 객체지향 설계및 구현
  • 초기투자(인터페이스및 구조의 설계및 코딩) 비용 부담

 

23개의 디자인패턴 분류

1. 생성 패턴

- 객체를 생성하는것과 관련된 패턴

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

  • factory method
  • singleton
  • prototype
  • builder
  • abstract factory
  • Chaining(Gof디자인패턴은 아님)

2. 구조 패턴

- 프로그램 내 자료구조나 인터페이스구조 등 프로그램 '구조'를 설계하는데 활용될수있는 패턴클래스

- 객체들의 구성을 통해 더 큰 구조를 만들 수 있게 해줌

- 큰규모 시스템에서 많은 클래스들이 의존성가지게 되는데, 이런 복잡한구조의 개발을 쉽고 유지보수하기 쉽게 만들어줌

  • Adapter
  • Composite
  • Bridege
  • Decorator
  • Facade (파사드)
  • Flyweight
  • Proxy

3. 행위 패턴

- 반복적으로 사용되는 객체들의 상호작용을 패턴화 한 것

- 클래스나 객체들이 상호작용하는 방법과 책임을 분산하는 방법 제공

- 행위관련 패턴을 사용하여 독립적으로 일을 처리하고자 할 때 사용

  • Template Method
  • Interpreter - 반복할때 사용
  • Iterator
  • Observer
  • Strategy (디자인 패턴의 꽃)
  • Visitor
  • Chain of responsibility
  • Command
  • Mediator
  • State
  • Memento