MVC 编程模式及其变种
MVC的全名是Model View Controller, 是模型(model)-视图(view)-控制器(controller)的缩写,这是一种很常见的编程模型.MVC最早提出的时候是为了把数据和视图分离开来,然后用控制器作为胶水来粘合数据和实体之间的关系.这就是关注点分离的设计理念,也是单一职责原则(Single-Resposibility Principle).
在我们的开发过程中, 视图用来展现界面, 我们的模型处理业务, 持有数据, 而控制器是他们之间的中间人.
GoF四人组认为MVC是"一组用于构建用户界面的类的集合,是其它三个经典的设计模式的演变:观察者模式, 策略模式, 组合模式".具体的实现可能还会用到工厂模式,装饰器模式,桥接模式,中介者模式.
下面介绍一下MVC及其变种
VC模式(view --> controller)
这种模式用于简单的界面,代码量不多的情况.一般业务代码都是控制器里.
- 用户点击屏幕,传递一个点击事件给视图
- 视图把点击事件传递给控制器
- 控制器执行逻辑
- 控制器把新的数据返回给视图
- 视图展示新的数据给用户
VMC模式(view --> model --> controller)
这种模式下面,视图先传递的对象是模型,模型能处理的话,根本就不通知控制器,可以减轻控制器的代码量
- 用户点击屏幕, 传递一个点击事件给视图
- 视图把点击事件传递给模型
- 模型处理点击事件
- 模型处理不了的和额外要处理的发消息给控制器
- 控制器执行逻辑
- 控制器把数据返回给模型
- 模型再把数据返回给视图
- 视图展示新的数据给用户
VCM模式(view --> controller --> model)
这种就是我们最常见的mvc模式了
- 用户点击屏幕, 传递一个点击事件给视图
- 视图把点击事件传递给控制器
- 控制器调用模型
- 模型执行逻辑
- 模型通知控制器,并返回数据
- 控制器接到数据后返回给视图
- 视图展示新数据
其实折腾这些,最终目的还是为了明确边界,让多人可以并行工作.
时间: 2024-11-08 13:37:32