MENU

浅析 MVC

September 25, 2020 • Read: 88 • 默认分类

Grit

浅析 MVC

MVC

MVC

如图,实线代表方法调用,虚线代表事件通知。

MVC 允许在不改变视图的情况下改变视图对用户输入的响应方式,用户对 View 的操作交给了 Controller 处理,在 Controller 中响应 View 的事件调用 Model 的接口对数据进行操作,一旦 Model 发生变化便通知相关视图进行更新。

Model

Model 层用来存储业务的数据,一旦数据发生变化,模型将通知有关的视图。

View

视图层用来负责所有的 UI 界面

Controller

定义用户界面对用户输入的响应方式,起到不同层面间的组织作用,用于控制应用程序的流程,它处理用户的行为和数据 model 上的改变。

EventBus

简单的说,就是一个以事件为驱动的消息服务总线,是一种设计模式或框架,主要用于组件/对象间通信的优化简化。

EventBus 常用 api:

  1. eventbus.emit(trigger)()

触发事件:可以多参数传递

  1. eventbus.on()

监听事件

  1. eventbus.off()

取消监听事件

表驱动编程

表驱动法就是一种编程模式(scheme)——从表里面查找信息而不使用逻辑语句(if 和case)。

一个很简单的例子: 今天星期几
const day = new Date().getDay()
let day_zh;
if(day === 0){
    day_zh = '星期日'
}else if(day === 1) {
    day_zh = '星期一'
}
...
else{
    day_zh = '星期六'
}

// 或者 用 switch case
switch(day) {
    case 0:
        day_zh = '星期日'
        break;
    case 1:
        day_zh = '星期一'
        break;
        ...
}

实现同样功能的一种更简单、更容易修改的方法是把这些数据存到一张表里面。

const week = ['星期日', '星期一',..., '星期六']
const day = new Date().getDay(
const day_zh = week[day]

模块化

模块化就是将项目中的各个功能所对应的js,css等文件分好类

88