CS

[Archtecture DesignPattern] MVP / MVC / MVVM 패턴

리네엔 2024. 11. 4. 21:26

기본 용어

Model

  • 데이터를 의미함
  • 데이터를 갖고 있고, 데이터에 접근하는 방법을 제공함

View

  • 사용자에게 모델(데이터)를 보여주는 방법
  • UI라고 생각 할 수 있음.

MVC

Controller

  • 사용자의 입력을 처리하고, 그에 따라 모델과 뷰를 업데이트 하는 역할

MVC 패턴에서 각각의 책임

  • Model
    • 데이터를 정의
    • 데이터에 접근 하는 방법 제공
    • 뷰나 컨트롤러를 알지 못함
  • View
    • UI
    • 모델에 의존하고 있으며, 모델의 변경사항을 사용자에게 보여줌
  • Controller
    • 사용자의 입력을 처리
    • 입력에 의존하고 있음
    • 사용자 입력에 따라 모델을 업데이트

시각적 표시에 관계 없이 모델을 만들고 테스트 할 수 있음.
컨트롤러가 비대해질 수 있음

MVP

각각의 책임

  • Model
    • 위와 동일
  • View
    • UI
    • 사용자 입력을 받음
    • 더이상 모델에 의존하지 않으며, Presenter와 상호 소통
  • Presenter
    • View로 부터 사용자에 입력을 전달받아 모델을 업데이트하고, 모델의 변경에 따라 view를 변경함

더 이상 UI가 데이터를 직접 의존하지 않음
여전히 Presenter가 비대해질 수 있음.

MVVM

각각의 책임

  • Model
    • 위와 동일
  • View
    • UI
    • 사용자 입력을 받고, 사용자에게 모델을 보여줌
    • 더 이상 Presenter를 직접 의존하지 않음
  • ViewModel
    • View와 데이터 바인딩으로 연결되어 있으며, 변하는 값에 따라 모델을 업데이트.

유니티에서는 UniRx등을 설치해야했음. Unity6에서는 Ui Toolkit이 기본패키지로 들어가며 지원한다고 함.

'CS' 카테고리의 다른 글

[CS] SOLID 원칙  (0) 2024.10.14
[CS] UML_ClassDiagram  (0) 2024.10.14
[CS] 객체지향 프로그래밍의 4대 특징  (0) 2024.10.14