1、什么是 MVP
MVP,全称 Model-View-Presenter。它是从 MVC 中演变过来的,它的基本思想是相通的;在 MVP 中,View 更加专注于处理数据的可视化以及用户交互,让 Model 专注于数据的处理,而 Presenter 则,提供 View 与 Model 之间数据的纽带,用于交互与数据传输;如下面这张图:
可以看到,在 View 与 Model 之间我们是通过 Presenter,也就是 interface 来实现 view 与数据的交互的,大大降低耦合,方便进行单元测试。至于与 MVC 的异同,自行 google 吧,这里就不细说了。
其实,自己在写代码的时候,心中有个概念就好了,**view 就是 UI,model 就是数据处理,而 persenter 则是他们的纽带。**心中有个轮廓,写起来就不那么费劲了。
2、使用 MVP 的 优缺点
我们在使用一种设计模式的时候,首先都会问,为什么要用这种模式,能给我们带来哪些方便?用了这种模式,它的缺点会不会给我的工程造成影响?
首先,优点上,我们上面已经阐述了;
- 减低耦合,实现了 Model 与 View 的真正分离,修改 View 而不影响 Model
- 模块职责分明,层次分明,便于维护,多人开发首选。
- Presenter 可以服用,一个 Presenter 可以用于多个 View,不用去改 Presenter
- 利于单元测试。模块分明,那么我们编写单元测试就变得很方便了,而不用特别是特别搭平台,人工模拟用户操作等等耗时耗力的事情。
缺点:
对于小工程,额外多出来的代码量,和额外的代码复杂度,毕竟那么多 interface ,但对于它的有点来说,完全可以接受。
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于