软件教程 2025年06月7日
0 收藏 0 点赞 811 浏览 1106 个字
摘要 :

MVP如何解决MVC的问题? 在MVP中: Presenter完全把Model和View进行了分离,主要的程序逻辑在Presenter里实现。其中的View是很薄的一层。 Presenter与具体的View是没……

MVP如何解决MVC的问题

在MVP中:

  1. Presenter完全把Model和View进行了分离,主要的程序逻辑在Presenter里实现。其中的View是很薄的一层。

  2. Presenter与具体的View是没有直接关联的,而是通过定义好的接口进行交互,从而使得在变更View时候可以保持Presenter的不变,即重用!

  3. 当我们将其中复杂的逻辑处理移至另外的一个类(Presneter)中时,Activity其实就是MVP模式中View,它负责UI元素的初始化,建立UI元素与Presenter的关联(Listener之类),同时自己也会处理一些简单的逻辑(复杂的逻辑交由Presenter处理).

    Android MVP如何解决MVC的问题?

1、方便测试:

  • 回想一下你在开发Android应用时是如何对代码逻辑进行单元测试的?是否每次都要将应用部署到Android模拟器或真机上,然后通过模拟用户操作进行测试?然而由于Android平台的特性,每次部署都耗费了大量的时间,这直接导致开发效率的降低。而在MVP模式中,处理复杂逻辑的Presenter是通过interface与View(Activity)进行交互的,这说明了什么?说明我们可以通过自定义类实现这个interface来模拟Activity的行为对Presenter进行单元测试,省去了大量的部署及测试的时间。

  • 我们还可以编写测试用的View,模拟用户的各种操作,从而实现对Presenter的测试 —— 而不需要使用自动化的测试工具。

  • 我们甚至可以在Model和View都没有完成时候,就可以通过编写Mock Object(即实现了Model和View的接口,但没有具体的内容的)来测试Presenter的逻辑。

2、如果View很简单:

  • 有人提出了Presenter First的设计模式,就是根据User Story来首先设计和开发Presenter。在这个过程中,能够把信息显示清楚就可以了。在后面,根据需要再随便更改View,而对Presenter没有任何的影响了。

3、如果UI比较复杂,而且相关的显示逻辑还跟Model有关系,就可以在View和Presenter之间放置一个Adapter。

  • 由这个 Adapter来访问Model和View,避免两者之间的关联。

  • 而同时,因为Adapter实现了View的接口,从而可以保证与Presenter之间接口的不变。

这样就可以保证View和Presenter之间接口的简洁,又不失去UI的灵活性。

在MVP模式里,View只应该有简单的Set/Get的方法,用户输入和设置界面显示的内容,除此就不应该有更多的内容,绝不容许直接访问Model —— 这就是与MVC很大的不同之处。

微信扫一扫

支付宝扫一扫

版权: 转载请注明出处:https://www.zuozi.net/3121.html

管理员

相关推荐
2025-06-07

APP登陆界面对于整体用户体验也非常关键,登陆界面需要用户输入信息,首先操作指示要非常明显,还有…

285
2025-06-07

在日常中,你们的电脑是不是经常会遇到360的LIU氓广告,怎么也关不掉呢,甚是烦人,今天小编来教大…

322
2025-06-07

任何时候一款优秀的软件程序都离不开产品经理的出色设计,对于产品经理来说原型图设计工具是必不可…

716
2025-06-07

相信很多人都有这样的经历,明明打开的是谷歌浏览器或者是火狐浏览器亦或者是office旗下的Edge浏览…

443
2025-06-07

Linux重定向是Linux操作系统内部一个很重要的功能,它可以帮助用户把程序的输出重定向到新的文件里…

367
2025-06-07

数据已成为现代社会的最重要资产之一,无论是企业还是个人,都需要保护自己的数据安全。硬盘是我们…

933
发表评论
暂无评论

还没有评论呢,快来抢沙发~

助力内容变现

将您的收入提升到一个新的水平

点击联系客服

在线时间:08:00-23:00

客服QQ

122325244

客服电话

400-888-8888

客服邮箱

122325244@qq.com

扫描二维码

关注微信客服号