一、MVC
MVC形式的意义是,软件能够分红三个部份。
视图(View):用户界面。
控制器(Controller):营业逻辑
模子(Model):数据保存
各部份之间的通讯体式格局以下。
1.View 传送指令到 Controller
2.Controller 完成营业逻辑后,请求 Model 转变状况
3.Model 将新的数据发送到 View,用户获得反应
一切通讯都是单向的。
二、互动形式
接收用户指令时,MVC 能够分红两种体式格局。一种是经由过程 View 接收指令,通报给 Controller。
另一种是直接经由过程controller接收指令。
三、实例:Backbone
现实项目每每采纳更天真的体式格局,以 Backbone.js 为例。
1. 用户能够向 View 发送指令(DOM 事宜),再由 View 直接请求 Model 转变状况。
2. 用户也能够直接向 Controller 发送指令(转变 URL 触发 hashChange 事宜),再由 Controller 发送给 View。
3. Controller 异常薄,只起到路由的作用,而 View 异常厚,营业逻辑都布置在 View。所以,Backbone 干脆取消了 Controller,只保存一个 Router(路由器)。
四、MVP
MVP 形式将 Controller 改名为 Presenter,同时转变了通讯方向。
1. 各部份之间的通讯,都是双向的。
2. View 与 Model 不发生联络,都经由过程 Presenter 通报。
3. View 异常薄,不布置任何营业逻辑,称为"被动视图"(Passive View),即没有任何主动性,而 Presenter异常厚,一切逻辑都布置在那里。
五、MVVM
MVVM 形式将 Presenter 改名为 ViewModel,基本上与 MVP 形式完全一致。
唯一的区分是,它采纳双向绑定(data-binding):View的更改,自动反映在 ViewModel,反之亦然。angular 和ember 都采纳这类形式。
以上就是引见MVC、MVP和MVVM的区分与用法的细致内容,更多请关注ki4网别的相干文章!