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框架模式。
未完待续。。。。。。
原创不易,如果您觉得好,可以分享此公众号给你更多的人。