我一开始对mvc的印象是,一个解耦的方案。
MVC即 Model+View+Controller ,其中
Model用于封装业务逻辑相关的数据以及处理数据的方法,eg:
const m = {
data:{
n:0
},
create(){},
update(){},
destroy(){}
}View是在显示器上的显示,描述的是Model当前的状态,当Model里的数据发生变化时,View会得到重新渲染的机会,eg:
const v= {
el:'#app',
html=`<div>{{n}}</div>`,
render(){
$(v.html).appendTo(v.el)
}
}Controller控制用户界面对用户行为的相应方式,处理用户的行为和Model上的改变,eg:
const c ={
events:{
'click #add1':'add'
},
add(){
m.data.n+=1
v.render(m.data.n)
},
autoBindEvents(){}
}Eventbus是用来监听Model中数据的变化并在Controller执行相应的操作,有on()和trigger()两个方法eg:
const eventBus = $(window)
const m = {
data:{
n:0
},
create(){},
update(){
Object.assign(m.data,data)
eventBus.trigger('eb')
},
destroy(){}
}const c ={
init(){
eventBus.on('eb',()=>{
v.render(m.data.n)
})
},
events:{
'click #add1':'add'
},
add(){
m.update(data:{n:m.data.n+1})
},
autoBindEvents(){}
}参考:https://efe.baidu.com/blog/mvc-deformation/
表驱动编程:是一种使你可以在表中查找信息,而不必用很多的逻辑语句(if或case)来把它们找出来的方法。
表格驱动的意义在于:逻辑和数据分离
在程序中,添加数据和逻辑的方式是不一样的,成本也是不一样的。简单的说,数据的添加是非常简单,低成本和低风险的;而逻辑的添加是复杂,高成本和高风险的。
参考:blog.csdn.net/u010490524/…
对于模块化的思考:
首先,模块化是将一整段比较复杂的代码拆分成若干个模块,每个模块拥有各自的数据和方法,只向外部暴露一些方法与其他模块通信。
模块化的好处在于耦合性低,按需加载;减少命名空间污染;更高的复用性和高可维护性。
参考:segmentfault.com/a/119000001…