MVC
Model View Controller
没有组织的代码如同「意大利面条」,长长短短,互相交织,你中有我,我中有你。
设计一个程序的结构,这是一门专门的学问,叫做”架构模式”(architectural pattern)。
MVC模式就是架构模式的一种。
MVC 思想
程序不论简单或复杂,从结构上看,都可以分成三层
- M 专门负责数据
- V 专门负责表现
- C 负责其他逻辑
这三层是紧密联系在一起的,但又是互相独立的,每一层内部的变化不影响其他层。每一层都对外提供接口(Interface),供上面一层调用。这样一来,软件就可以实现模块化,修改外观或者变更数据都不用修改其他层,大大方便了维护和升级。
具体到JS代码:
- M 专门操作远程数据的代码:存储数据、请求数据、更新数据
- V 专门呈现页面元素的代码:负责渲染 HTML(可接受一个 data 来定制数据)
C 其他控制逻辑的代码:负责调度 model 和 view
MVVM
采用双向绑定(data-binding):View的变动,自动反映在 ViewModel,反之亦然。Angular 和 Ember 都采用这种模式。
扩展:
那些前端MVVM框架是如何诞生的