一、MVC是什么?
MVC包括三类对象
- M(Model)为模型,用于封装数据和数据处理方法
- V(View)控制图形界面,如果M的数据变化,V会重新渲染
- C(Controller)定义界面如何响应用户的控制,处理用户行为和M之间的交互
代码示例:
//初始化数据m
const m = {
data:{
n: '1'
},
// 各种方法
init(){},
delete(){},
update(data){},
get(){}
}
//初始化界面v,用于渲染HTML
const v = {
init(){},
html : `
<div>
<div class="output"></div>
</div>
`
}
//交互c
const c = {
view: null,
model: null,
init(view, model){
this.view = view,
this.model = model,
this.bindEvents()
},
render(){},
bindEvents(){}
}
}
二、eventBus和MVC的关系
eventBus是一种设计模式,主要用于优化MVC组件之间的通信。
代码示例:
eventBus.on('m:updated',()=>{
v.render(m.data.n)
}) //监听事件 m:updated,当m:updated,执行事件
eventBus.trigger('m:updated') //当一个事件执行,触发事件m:updated
三、表驱动编程是什么
-
表驱动是一种编程模式,从表里面直接查找信息,不需要使用逻辑语句。
-
比如查找一年中每个月份的天数,如果使用表驱动法,直接把每个月的天数存储到一个数组中,取值的时候,直接下标访问即可。
-
平时使用的HashMap、SparseArray都可以算是表驱动。
-
表里可以存数据,也可以存指令,或函数指针等都可以。
四、如何理解模块化?
- 将一个复杂的程序,根据一定的规则,封装成几个块,并组合到一起
- 块的内部数据是私有的,只向外露出一些借口与其他模块通信
- 模块化能够避免命名污染
- 更好分离,按需求加载
- 高复用性和可维护性