MVC MVP MVVM databinding之初步区分选择

                                    

今天九一八,前段时间日本右翼访问台湾踢了慰安妇雕像,果然没让所有中国人失望:日本部分禽兽不如的玩意……算了,去他妈的!

本人也是初步认识这些模式,如有不明白或者建议请联系小弟:

 QQ群:88627109

参考对象:

https://www.cnblogs.com/icebutterfly/p/7977033.html

阅读对象:

       对这些模式一直不清不楚的小白们。

长久以来根据对项目的分析,整个应用可分为 界面、业务逻辑、数据访问。

   

2 分层的优势和劣势

   优势:结构清晰、耦合度低,

             可维护性高,可扩展性高;

             利于开发任务同步进行;容易适应需求变化

  劣势:增加了代码量,增加了工作量,增加了复杂度,改动复杂

MVC

       MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码。

View: xml

            View可以直接调用Model查询其状态信息,

            而Model也可以在自己的状态发生改变时,主动通知View

Model: 业务层

Controller: 是M和V之间的连接器,代码在activity、fragment中

MVP

    MVP 全称:Model-View-Presenter ;

   共同点:MVP 是从经典的模式MVC演变而来,Presenter负责逻辑的处理,Model提供数据,View负责显示。

   区别:在MVP中View并不直接使用Model,它们之间的通信是通过Presenter (MVC中的Controller)来进行的,所有的交互都发生在Presenter内部,而在MVC中View会直接从Model中读取数据而不是通过 Controller。

                                             

                                                        

MVVM

    MVVM是Model-View-ViewModel的简写。本质上就是MVC 的改进版,区别是:绑定!

    因为WPF技术(微软提出)出现,从而使MVC架构模式有所改进,MVVM 模式便是使用的是数据绑定基础架构。

    View绑定到ViewModel,然后执行一些命令在向它请求一个动作。反过来,ViewModel跟Model通讯,告诉它更新来响应UI。

                            
     

总结:

MVP 里的M 其实和MVC里的M是一个,都是封装了核心数据、逻辑和功能的计算关系的模型,而V是视图(窗体),P就是封装了窗体中的所有操作、响应用户的输入输出、事件等,与MVC里的C差不多,区别是MVC是系统级架构的,而MVP是用在某个特定页面上的,也就是说MVP的灵活性要远远大于MVC,实现起来也极为简单。

作为与MVP极为相似的MVVM,因为谷歌退出了databinding,省略了大量代码的同时,让MVVM的实现更加简洁。

以上是对MVP、MVC、MVVM设计模式的初步理解,如有疑问请进群询问: 

QQ群: 88627109

   

猜你喜欢

转载自blog.csdn.net/csdn_loveQingQing/article/details/82752639