MVP 你应该了解的程序设计模式(一)


MVC之痛

说到设计模式,做原生开发的朋友,用到最多应该是MVC设计模式。其实MVC不应该说是设计模式,而是一种框架模式。Model-View-Controller,即模型(数据)-视图-控制器,其目的是将视图和数据分离开来,通过控制器作为链接两者的桥梁以实现解耦。可能你觉得MVC架构已经很好用了,但是在实际的开发过程中你会发现,Controller控制器和View视图显示是在一个类Activity中体现出来的,而Android中Activity是担当Controller控制器的角色的,如果界面操作方式繁琐,视图显示复杂,那么我们不得不在Activity中添加更多的View视图显示操作,这样自然增加了Activity的代码量,也导致了Activity承担的任务和逻辑处理太多,职责不清晰。今天我们来介绍一个新的开发模式MVP。

MVP框架模式

MPV是从经典的MVC模式演变过来的,其基本思路都是相通的。其中M是model模型,提供业务数据;P和MVC中的C担当的角色相似,是Presenter控制者,进行逻辑处理。V是View视图,显示数据。MVP与MVC有着一个重大的区别:在MVP中View并不直接使用Model,它们之间的通信是通过Presenter (MVC中的Controller)来进行的,所有的交互都发生在Presenter内部,而在MVC中View可以直接从Model中读取数据而不是通过Controller。


MVC框架图


MVP框架图

从上面的框架图可以看出MVC和MVP最大的区别就是Model和View之间的关系。在MVC框架中,View是可以直接读取Model中的数据的,Model数据发生改变是会通知View的改变。而在MVP中Model和View之间的没有任何联系,是两个完全独立的模块,当Model发生改变时,通过Presenter通知View视图发生相应的改变。因此,我觉得MVP才是正真的视图和数据是完全分离的,也就是Model数据进行业务处理和View视图显示没有任何关联。


下一篇,我将结合一个例子来进一步分析如何在andorid开发使用MVP框架模式。

未完待续。。。。。。

原创不易,如果您觉得好,可以分享此公众号给你更多的人。



  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值