今天九一八,前段时间日本右翼访问台湾踢了慰安妇雕像,果然没让所有中国人失望:日本部分禽兽不如的玩意……算了,去他妈的!
本人也是初步认识这些模式,如有不明白或者建议请联系小弟:
QQ群:88627109
参考对象:
1 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