引言:
栗子
我用一个日常生活的例子举例为啥要使用MVC。
随着家用电器越来越多了,所以家里的电路越来越复杂了,但是如果你想装个空调,空调师傅也能帮你迅速装好。这是因为大部分家里都已经线路
独立成模块。例如电视都会专门留专线供后续使用。但是在很久很久之前的电路....如图:
有人会疑惑这和MVC有什么关系
首先,所有的设计模式都是为了便于开发和后期维护。
1.如果你学过c语言,在你刚开始学习时,你会把所有的方法随意的写,只要能够实现即可,但是学到后面,你会采用结构体,函数等将你的整个代码分成很多模块,首先它会使得你开发更有顺序,不会混乱,其次,它可以使你方便调试。
2.如果你学过Java,那么其中的类就是大致相对于小模块。
其次使用IDEA开发工具写Java Web项目时会发现随着代码的增多,代码会很混乱,有时自己命名都会分不清。
所以问题就来了:一个新的类 到底往哪个目录下的哪个文件夹里写?
此时解决办法就是:需要一个模式去规范,到底哪个类该往哪里写。
通过上述的例子,你应该可以大致猜出,所有把东西隔成模块的都是方便开发以及后期维护,所以
MVC模式也不例外,它作为一种设计模式,也可以说它是一个模板套路。
一、MVC模式介绍
1.MVC全名:
Model _View_Controller(模型-视图-控制器)
2.定义
M(Model):模型:其作用:处理应用程序中数据逻辑,通常模型对象用于数据库的数据存取
V(View):视图:是应用程序中用于处理数据显示的部分。通常视图是依据模型数据创建的。(相当于“显示”,所以可以称为输出)
C(Controller)控制器:是应用程序中处理用户交互的部分。通常控制器负责从视图读取数据,控制用户输入、并向模型发送数据。(相当于输入)
3.作用
是一种业务逻辑、数据、界面显示分离的方法,通俗的讲即将输入与输出以及处理三个板块分开,每个地方负责一个自己的任务。
注:这里的逻辑一般指的事数据逻辑。
有人就会纳闷,为何要这样多此一举呢?直接完成任务不就可以,但是做过项目的人都知道需求
是变化的,所以此设计好处就在“隔离”,然后哪部分变化就修改哪部分,当然其余部分也会有所修
改,但是不至于所有部分都会大规模改动。
二、举例说明
最典型的MVC就是JSP + servlet + javabean的模式
Model:常用javabean去实现,通过各种类(实体类)来对数据库的数据进行获取,并封装在对象当中。
View:常用JSP来实现,通过可直接观察的JSP页面来展示我们从数据库中获取的数据。
Controller:常用servlet来实现,通过servlet来获取经过javabean包装过的对象(已存入数据库中的数据),然后再发送数据传输到JSP界面。