0%

许式伟的架构课笔记

MVC模式

mvc模式如下图所示:

Model 是数据,View 是数据的显示结果,同时也接受用户的交互动作,也就是事件。从这个意义来说,说 Model 是 Input 并不严谨,View 接受的用户交互,也是 Input 的一部分。

Controller 负责 Process(处理),它接受 “Model + 由 View 转发的事件” 作为 Input,处理的结果(Output)仍然是 Model,它更新了 Model 的数据。

Model数据更新之后,会产生一个事件datachanged发给view,view进行视图的更新。

当Controller监听data changed事件,然后更新view时,就变成了另一种模式:mvp。

理解Model层

model层应该自然体现业务逻辑,不仅包括数据,也包括接口。

单一职责原则:不要干多件事,也不要啥事不干。

Model层的核心价值是业务需求,是稳定点;datachanged事件是面对需求变化点的对策。

model层越厚越好,这是跨平台最容易的部分。

理解View层

View层的首要责任是界面呈现,可以自己调用GDI画,也可以用子View画。

其次,响应用户事件,应该委托出去给别人干。

View层局部更新太复杂时,一般会引入ViewModel层,它的数据组织接近于View。

理解Controller层

Model层和View都是一个整体,而Controller层不是。它由一个一个不相关的controller和它需要的辅助view组成。controller之间可以完全不知道对方的存在。

应用程序将MVC各个模块串起来,在程序开始的时候,把Model,Controller,View层创建好,建立彼此关联。

工程师文化

  • 事务与工程:防止掉入事务陷阱,花更多时间在工程上才有利于职业发展。
  • 彻底解决问题:清楚定义目标,以自动化方式把事务彻底解决掉。
  • 系统化与批判:去除不必要的代码,保证所有的代码行都有必须存在的目的。

持续更新。。。