一.何为MVC
MVC模式(Model–view–controller)是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model)、视图(View)和控制器(Controller)。
MVC模式的目的是实现一种动态的程序设计,使后续对程序的修改和扩展简化,并且使程序某一部分的重复利用成为可能。除此之外,此模式通过对复杂度的简化,使程序结构更加直观。软件系统通过对自身基本部分分离的同时也赋予了各个基本部分应有的功能。专业人员可以通过自身的专长分组:
- 控制器(Controller)- 负责转发请求,对请求进行处理。
- 视图(View) - 界面设计人员进行图形界面设计。
- 模型(Model) - 程序员编写程序应有的功能(实现算法等等)、数据库专家进行数据管理和数据库设计(可以实现具体的功能)。
(以上摘自维基百科)
二.个人理解与总结
MVC理解
model,view,controller。
<1>首先,model模块是最重要的,它定义了Controller要Control的对象,与View要View的对象,它是客观事物的抽象,比如说一瓶香水,它就是model的具体实例,于此同时,model也定义了需要执行的业务逻辑。比如说标上生产日期,贴说明等操作,并且将数据的更新传递给视图(由于model模块并不包含View模块的实力,所以一般都是通过接口回调来实现对model的监听),所以个人认为model是核心部分,其主要是数据,业务逻辑与业务规则。
<2>然后就是Controller,即控制器,这也是很重要的部分,它在View和Model模块起桥梁的作用。其主要是响应与处理用户的一些请求(如Model模块定义的一些业务逻辑),决定数据的显示方式等(也就是View的模式)等。说白了就是对整个进程的控制,使得View与Model部分得以交互。
<3>最后便是View模块了,看名字很容易就明白其主要功能就是显示,显示用户可执行的操作,显示Model模块定义的相关业务逻辑与功能。同时,一切与显示界面无关的东西,都不应该出现在View里面,同时也不应该出现复杂的运算过程等模块。
简单的理解来说,就是将数据,操作与显示相互分离开,比如说我换一种显示方式,只用更改显示模块的代码,完全不会影响到其他两个模块。
优缺点辨析
优点显而易见,这种层次的结构降低了各个模块的耦合度,改变其中一个不会影响其它两个,可维护性很高。同时也提高了代码的重用性,一个控制器可以控制多个model对象,同时多个视图能共享一个model。
缺点:要严格遵守各个模块的相应规则,便会增加系统结构和实现的复杂性。而花费大量时间将MVC应用到规模并不是很大的应用程序通常会得不偿失。
三.代码实例
请见笔者的前两篇博客。
PS:由于笔者还是菜鸟一只,若有错误或者好的意见建议请不吝赐教,请在评论区留言。