一、MVC
视图(View):用户界面,只负责渲染HTML
控制器(Controller):业务逻辑,负责调度model和view
模型(Model):数据保存,只负责存储数据,请求数据,更新数据
MVC允许在不改变视图的情况下改变视图对用户输入的响应方式,用户对view操作交给Controller处理在
Controller中响应View的事件调用Model的接口对数据进行操作,一旦Model发生变化便通知相关View进行更新。
接受用户指令时,MVC可以分成两种方式。一种是通过View接受输入,传递给Controller。另一种是直接通过Controller接受指令。
但是MVC有一个巨大的缺陷就是控制器承担的责任太大了,随着项目的愈加复杂,控制器中的代码会越来越臃肿,导致不利于维护的情况
二、MVP
mvp模式将Controller改名为Presenter,同时也改变了通行方向。
与MVC最大的区别就是View和Model层完全解耦,不存在依赖关系,而是通过Presenter做桥梁,用于操作view层发出事件传递到presenter层中,presenter层区操作model层,并且将数据返回给view层,整个过程中view和model层完全没有联系
三、MVVM
MVVM模式将Presenter改名为ViewModel,基本上与MVP模式一致。唯一的区别是,它采用了双向绑定(data-binding),View的变动,自动反应在ViewModel,反之亦然