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()
    
分享

Author | 何小亮

全栈开发工程师(Node.js,Golang).