디자인 패턴

MVP 패턴

언린이 2021. 4. 12. 23:51

일반적인 MVP 패턴

MVP 패턴은 MVC 패턴에서 Controller를 제거하고 Presenter를 추가한 것 입니다.

Controller 대신에 Presenter로 대체한 이유는 View와 Model의 의존성을 없애기 위함입니다.

 

역할 및 동작 원리

  • Model
    • 프로그램에서 사용되는 실제 데이터 및 데이터 조작 로직을 처리하는 부분
    • domain Data 또는 데이터를 다루는 data access layer를 담당하는 카테고리
  • View
    • 사용자에게 제공되어 보여지는 UI
  • Presenter
    • View에서 요청한 정보를 Model로 부터 가공해서 View로 전달하는 부분
    • Presenter에는 어떠한 layout code도 담겨져 있지 않습니다
    • View의 데이터와 상태를 Updating 해주는 역할을 합니다

MVP 패턴에서 View와 Model은 서로를 알 필요가 전혀 없습니다.

 

1. View로 사용자의 입력이 들어옵니다

2. View는 Presenter에게 작업을 요청합니다

3. Presenter에서 필요한 데이터를 Model에게 요청합니다

4. Model은 Presenter에게 요청된 데이터를 응답합니다

5. Presenter는 View에게 데이터를 응답합니다

6. View는 Presenter로부터 받은 데이터를 화면에 보여줍니다

 

 

MVP 패턴의 장단점

  • 장점
    • 대부분의 책임을 Presenter와 Model이 가지고 있어 View는 출력만 하는 역할을 합니다
    • Test할 때 View에 대한 책임이 분리되어 있기에 각 요소들을 독립적으로 테스팅할 수 있습니다
  • 단점
    • View와 Presenter가 1:1 관계를 가집니다
    • MVC 패턴에 비해서 코드량이 더 많이 늘어납니다

'디자인 패턴' 카테고리의 다른 글

Clean Swift(VIP) 패턴  (0) 2021.04.13
VIPER 패턴  (0) 2021.04.13
MVVM 패턴  (0) 2021.04.13
MVC 패턴  (0) 2021.04.12