MVC设计模式思想
MVC是model、view、controller的简称,是一种设计规范。
使用MVC旨在降低代码耦合利于项目工程化。
其设计的核心理念是架构分层,下层只对上层有依赖,上层通过事件获取下层的变化。
各个模块的用法:
- Model 用于获取和保存数据
- View 用于显示界面
- Controller 用于处理view和model的变化,并将结果反馈给model和view
Controller可以直接引用View和Model。View通过事件通知Controller,直接引用Model。Model通过事件通知View。
示例代码:const EventEmitter = require("events") class Controller { constructor() { this.model = new Model() this.view = new View(this.model) this.model.on("dataUpdate", this.modelUpdateHandler) this.view.on("viewUpdate", this.viewUpdateHandler) } modelUpdateHandler(data) { console.log("controller model update", data) } viewUpdateHandler(data) { console.log("controller model update", data) } modifyData() { this.model.update() } modifyView() { this.view.input("input 1") } } class Model extends EventEmitter{ constructor() { super() this.val = 0 } update() { this.val++ this.emit("dataUpdate", this.val) } } class View extends EventEmitter { constructor(model) { super() this.model = model this.model.on("dataUpdate", this.modelUpdateHandler) } modelUpdateHandler(data) { console.log("view model update", data) } input(val) { this.emit("viewUpdate", val) } } const ctrl = new Controller() ctrl.modifyData() ctrl.modifyView()