众所周知,MVC 分别代表的是:
M:模型(数据层)
V:视图(负责视图呈现,用户直观呈现)
C:控制器(接收视图输入的请求,并发送的模型,然后响应视图的请求。)
其实做过开发的人都知道,其实控制器是可以去掉的,类似PHP中,模型和视图是可以混编在一起的。那么为什么我们还需要控制层。原因如下:
1.因为控制器作用是解析请求,然后操做模型。
2.如果控制器与视图混合,增加代码的复杂度,不易维护,并且降低开发效率(视图有了两个职责,既要管理视图,还有控制处理模型的逻辑)
3.最后,视图与模型紧耦合,如果想让视图处理其他模型,变得不可能。
所以视图与控制器分离,这样会更有弹性和扩展性
那么MVC模式到低是什么?
其实MVC模式本质就是多个设计模式的组合,其中主要涉及的主要设计模式有:
1.视图内部通过组合模式实现,比如视图与视图之间可以相互嵌套,按钮以及其他显示组件
2.视图与控制器之间以策略模式实现,在不改变视图的情况下,如果想让相同的视图有不一样的响应方式,只需要换一个控制器
3.视图与模型之间,以观察者模式实现。视图根据模型数据的改变刷新视图
MVC设计模式的主要作用:开发者之间解耦,该写数据模型的人就编写模型,该做界面的人就做界面,专业分工,责任清楚。
参考数据:《Head First设计模式(中文版)》 和 《Gof设计模式》