[DesignPattern] CompositionPattern, 복합패턴

LimJaeJun·2023년 8월 28일

DesignPattern

목록 보기
15/15

복합패턴 - Composition Pattern

🔥 복합패턴이란?

문제를 해결하는 용도로 2개 이상의 패턴을 결합하여 사용하는 것을 의미한다.

📌 예시 - MVC 패턴

MVC (Model-View-Controller) 패턴

Model

  • 모든 데이터, 상태와 로직이 들어 있다.
  • 뷰와 컨트롤러에서 모델의 상태를 조작하거나 가져올 때 필요한 인터페이스를 제공
  • 모델이 자신의 상태 변화를 옵저버들에게 연락해주지만 뷰와 컨트롤러에 직접적인 연관은 없다.

View

  • 모델을 표현하는 방법을 제공한다.
  • 일반적으로 화면에 표시할 때 필요한 상태와 데이터는 모델에서 직접 가져온다.

Controller :

  • 사용자로부터 입력을 받으며 입력받은 내용이 모델에게 어떤 의미가 있는지 파악한다.

로직 순서
1. 사용자는 뷰에만 접촉할 수 있다.
2. 컨트롤러가 모델에게 상태를 변경하라고 요청한다.
3. 컨트롤러가 뷰를 변경해 달라고 요청할 수도 있다.
4. 상태가 변경되면 모델이 뷰에게 그 사실을 알린다.
5. 뷰가 모델에게 상태를 요청한다.

MVC에 사용되는 패턴 알아보기

Model (Observer Pattern)

  • 상태가 변경되었을 때, 그 모델과 연관된 객체들에게 연락한다.
  • View와 Controller에 의존하지 않는다.
  • 한 모델에서 여러 개의 뷰를 동시에 사용할 수 있다.

View (Composite Pattern)

  • GUI 구성 요소로 이루어진 복합 객체이다.
  • 최상위 뷰 구성 요소에게만 화면 갱신을 부탁하면 된다.
  • 나머지는 컴포지트 패턴이 알아서 처리한다.

Controller (Strategy Pattern)

  • View 객체를 여러 전략을 사용하여 설정할 수 있다.
  • View는 애플리케이션의 겉모습에만 신경을 쓰며, 인터페이스의 행동을 모두 Controller에게 맡긴다.
  • 전략 패턴을 사용하여 View를 Model로부터 분리하는 데 도움이 된다.
  • User가 요청한 내역을 처리하려고 Model과 얘기하는 일을 Controller가 맡고 있으니 View는 알 방법이 없다.

📚 참고문헌

profile
Dreams Come True

0개의 댓글