浅析 MVC

71 阅读2分钟

MVC 三个对象分别做什么

MVC 是软件工程中的一种架构模式。

  • M (model):指的是模型,表示为业务数据模型。是用于处理数据逻辑的部分。
  • V (view):指的是视图,表示的是页面或程序处理数据显示的部分,不管是可交互的网页页面,火箭的客户端界面。
  • C (controller):负责控制,不管是控制数据的读取,用户的输入,数据的发送等等。 伪代码:
const m={
  data:n
}
const v={
  html:m.data
  render(xxx){}
}
const c={
 click:m.data+=1
}
v.render(v.html)
c.click
v.render(v.html)

eventBus 有哪些 API,是做什么用的

常用的 eventbus 的 api 有on, trigger,off 这三种。

const eventBus = jquery({window})
eventBus.on()   // 监听事件
eventBus.trigger()  // 触发事件
eventBus.off()  // 取消事件

伪代码:

const EventBus=jquery({window})
    const m = {
    data:n update(data) { EventBus.trigger("data:updated") }
} 
const v={ 
    html:m.data
    render()
} 
const c={ 
    EventBus.on("data:updated", () => {
    v.render(m.data); EventBus.off("data:updated")
    } 
    init:m.update(data) 
    }
}

表驱动编程是做什么的

表驱动方法,出于特定的目的来使用表,使得你可以在表中查找信息,而不再使用很多的if else 语句。

function weekday(day) {
    if(day&7===0){
  	  return '星期天';
    }
    else if(day%7===2){
  	  return '星期二';
    }
    else if(day%7===3){
  	  return '星期三';
    }
    else if(day%7===4){
  	  return '星期四';
    }
    else if(day%7===5){
  	  return '星期五';
    }
    else if(day%7===6){
  	  return '星期六';
    }
}

根据“事不过三”原则:

  • 同样的代码写三遍,就应该抽成一个函数。
  • 同样的属性写三遍,就应该做成共有属性(原型或类)
  • 同样的原型写三遍,就应该用继承 上面的代码使用表驱动编程
function week(days){
	let weekdays=['星期天','星期一','星期二','星期三','星期四','星期五','星期六'];
  return weekdays[days%7];
}

如何理解模块化

模块化,就是自上而下的将一个复杂的问题分解成若干个小问题(小模块)的过程。一个项目、程序或页面,都可以将其各个功能分解成模块,模块化之后,一个一个小的模块更好处理,而且彼此相互独立,互不影响;各个模块组合在一起,形成一个功能或系统。