MVP 即 Modal View Presenter(模型 视图 协调器),
MVP 实现了 Cocoa 的 MVC 的愿景。
MVP 的协调器 Presenter 并没有对 ViewController 的生命周期做任何改变,因此 View 可以很容易的被模拟出来。在 Presenter 中根本没有和布局有关的代码,但是它却负责更新 View 的数据和状态。MVC 和 MVP 的区别就是,在 MVP 中 M 和 V 没有直接通信。
MVP 是第一个如何协调整合三个实际上分离的层次的架构模式,既然我们不希望 View 涉及到 Model,那么在显示的 View Controller(其实就是 View)中处理这种协调的逻辑就是不正确的,因此我们需要在其他地方来做这些事情。
例如,我们可以做基于整个 App 范围内的路由服务,由它来负责执行协调任务,以及 View 到 View 的展示。这个出现并且必须处理的问题不仅仅是在 MVP 模式中,同时也存在于以下集中方案中。
MVP模式下的三个特性的分析
任务均摊 -- 我们将最主要的任务划分到 Presenter 和 Model,而 View 的功能较少;
可测试性 -- 非常好,由于一个功能简单的 View 层,所以测试大多数业务逻辑也变得简单;
易用性 -- 代码量比 MVC 模式的大,但同时 MVP 的概念却非常清晰。
demo
https://coding.net/u/jintiantianqihenhao/p/swift-mvp-demo/git