MVP是在MVC架构基础上演变过来的。其中P(Presenter)处理了Controller里边的逻辑,其实就是Presenter分担了Controller的压力。 MVP的数据流向如下图所示,分别通过接口实现。
- 实际开发中Controller一般都是存在的。 只不过Controller会把逻辑处理部分交给Presenter去处理。Controller的角色就是负责把M、V、P 三方给串起来。
- MVP中Model和View没有直接的交互,Presenter 通过接口分别和Model、View交互。
- View只负责展示,如果有响应事件需要处理数据,那么会通过接口给Presenter去处理,处理完之后在由Present给View去更新UI。
- 会不会有人疑问网络请求应该放在Controller还是Present。其实网络请求回来的数据都是用于View展示的。如果Controller去做请求的话还要交给Presenter,然后Present在交给view。 view如果有相应事件需要网络请求,那么又会通过Presenter交给Controller, 显然这没有意义。
差不多就这些吧,有不对之处欢迎多多指正,谢谢!