【Swift】MVP 아키텍처에 대해서
소개
MVP는
Model
View(View,ViewController)
Presenter
세 가지로 구성되어 있습니다. MVC
에서는 View
와 ViewController
는 나누어 생각되고 있었습니다만, MVP
에 있어서는 View
로서 다루어집니다.
왜 MVP인가?
MVC
에서는 ViewController
의 책무가 커져 버리기 때문에, 테스트의 용이성이나 작업 분담의 용이함과 같은 문제가 있습니다. 그것을 해결하는 방법은 MVP
입니다. 이하에서는, MVP
에 있어서의 역할 분담을 MVC
와 섞으면서 확인해 갑니다. (또한 이번은 MVP
중에서도 PassiveView
패턴을 취급합니다.)
MVC
모델
· 비즈니스 로직 담당
보기
・화면의 묘화 처리
컨트롤러
· View
의 입력에 대해 처리합니다 (Controller
・ View
에 처리를 의뢰한다 ( Model
는 Controller
에 의존 )
・ Model
의 정보를 취득하기 위해서 API등에 문의한다 ( Model
는 Controller
에 의존)
이상과 같이 Utility
에 있어서 MVC
는 많은 로직이 담겨져 있어, 안는 책무가 많아져 버립니다. 또는 Controller
는 Controller
, View
, Model
에 의존하기 때문에 작업 분담이나 테스트의 용이성이라는 점에서 문제가 있습니다.
MVP
모델
・ Utility
와 같이 비즈니스 로직을 담당
View( View, ViewController )
・ MVC
에 처리를 의뢰( Presenter
Presenter
・ protocol
에 처리를 의뢰( Model
는 Presenter
에 의존)
· Model
의 정보를 취득하기 위해서 API등에 문의한다 ( Model
는 Controller
에 의존)
・ Utility
에 처리를 의뢰( output
반면에 protocol
에서 MVP
의 역할은 외부의 액션(Cell이나 Button 의 탭 등)을 Controller(View)
에 전달할 뿐입니다. 언뜻 보면 Presenter
와 Controller
사이에 종속성이 있는 것처럼 보이지만 Presenter
에서 관계를 갖게 하기 때문에 느슨하게 결합 상태입니다. 즉, 의뢰를 받은 Protocol
도 처리를 전하는 상대가 누구인지는 모릅니다. 이와 같이 프레젠테이션 로직이 분리되어 있기 때문에, 디자이너의 작업이 눌러져 있어도 작업을 진행할 수 있습니다.
끝에
이상입니다. 다음은 MVVM에 대해 정리하려고 생각합니다!
Reference
이 문제에 관하여(【Swift】MVP 아키텍처에 대해서), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/haruto861/items/35e9e8dcc43af9813571
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
MVC
에서는 ViewController
의 책무가 커져 버리기 때문에, 테스트의 용이성이나 작업 분담의 용이함과 같은 문제가 있습니다. 그것을 해결하는 방법은 MVP
입니다. 이하에서는, MVP
에 있어서의 역할 분담을 MVC
와 섞으면서 확인해 갑니다. (또한 이번은 MVP
중에서도 PassiveView
패턴을 취급합니다.)MVC
모델
· 비즈니스 로직 담당
보기
・화면의 묘화 처리
컨트롤러
·
View
의 입력에 대해 처리합니다 (Controller
・ View
에 처리를 의뢰한다 ( Model
는 Controller
에 의존 )・
Model
의 정보를 취득하기 위해서 API등에 문의한다 ( Model
는 Controller
에 의존)이상과 같이
Utility
에 있어서 MVC
는 많은 로직이 담겨져 있어, 안는 책무가 많아져 버립니다. 또는 Controller
는 Controller
, View
, Model
에 의존하기 때문에 작업 분담이나 테스트의 용이성이라는 점에서 문제가 있습니다.MVP
모델
・
Utility
와 같이 비즈니스 로직을 담당View( View, ViewController )
・
MVC
에 처리를 의뢰( Presenter
Presenter
・
protocol
에 처리를 의뢰( Model
는 Presenter
에 의존)·
Model
의 정보를 취득하기 위해서 API등에 문의한다 ( Model
는 Controller
에 의존)・
Utility
에 처리를 의뢰( output
반면에
protocol
에서 MVP
의 역할은 외부의 액션(Cell이나 Button 의 탭 등)을 Controller(View)
에 전달할 뿐입니다. 언뜻 보면 Presenter
와 Controller
사이에 종속성이 있는 것처럼 보이지만 Presenter
에서 관계를 갖게 하기 때문에 느슨하게 결합 상태입니다. 즉, 의뢰를 받은 Protocol
도 처리를 전하는 상대가 누구인지는 모릅니다. 이와 같이 프레젠테이션 로직이 분리되어 있기 때문에, 디자이너의 작업이 눌러져 있어도 작업을 진행할 수 있습니다.끝에
이상입니다. 다음은 MVVM에 대해 정리하려고 생각합니다!
Reference
이 문제에 관하여(【Swift】MVP 아키텍처에 대해서), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/haruto861/items/35e9e8dcc43af9813571텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)