欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

MVP 模式

程序员文章站 2024-03-15 19:20:18
...

MVP 模式

MVP 模式是由 MVC 模式衍生而来。MVP 模式将 Controller 改为 Presenter,同时改变了通信方向。

MVP 模式

Model :定义使用者界面所需要被显示的资料模型,一个模型包含着相关的业务逻辑。
View :视图为呈现使用者界面的终端,用以表现来自 Model 的资料,和使用者命令路由再经过 Presenter 对事件处理后的资料。
Presenter :Presenter 层是连接View 层与 Model 层的桥梁并对业务逻辑进行处理。MVP 中 Model 与 View 无法直接进行交互。所以在 Presenter 层它会从 Model 层获得所需要的数据,进行一些适当的处理后交由 View 层进行显示。

    MVP 和 MVC 最大的区别是 P 层代替了 C 层,控制的不再是具体的实现而是接口。在 MVP 中View 并不直接使用 Model,它们之间的通信是通过 Presenter 来进行的,所有的交互都发生在 Presenter 内部,而在 MVC 中 View 会直接从 Model 中读取数据而不是通过 Controller 。这样不管是多人开发还是频繁的 UI 更改,都不会影响 P 层,只要 C 和 V 层的接口不变,UI 的改动只需要更改 V 层的实现而已,C 层的实现都不需要改,这样代码就很清晰,而且方便测试,因为逻辑层和视图层完全分离了。

MVP的优点

1、低耦合:模型与视图完全分离,使其更关注自身业务逻辑,结构清晰,维护方便。
2、代码复用率提高。
3、我们可以将一个 Presenter 用于多个视图,而不需要改变 Presenter的 逻辑。这个特性非常的有用,因为视图的变化总是比模型的变化频繁。
4、如果我们把逻辑放在 Presenter 中,那么我们就可以脱离用户接口来测试这些逻辑(单元测试)

MVP的缺点

由于对视图的渲染放在了 Presenter 中,所以视图和 Presenter 的交互会过于频繁。主要表现在每个view都有presenter ,类相对比较多。