MVC(Model、View、Controller)
一、什么是MVC?
是一种软件架构的思想,将一个软件按照模型、视图、控制器进行划分。
其中,模型用来封装业务逻辑,视图用来实现表示逻辑,控制器用来协调模型与视图(视图要通过控制器来调用模型,模型返回的处理结果也要先交给控制器,由控制器来选择合适的视图来显示 处理结果)。
1、模型:业务逻辑包含了业务数据的加工与处理以及相应的基础服务(为了保证业务逻辑能够正常进行的事务、安全、权限、日志等等的功能模块)
2、视图:展现模型处理的结果;另外,还要提供相应的操作界面,方便用户使用。
3、控制器:视图发请求给控制器,由控制器来选择相应的模型来处理;模型返回的结果给控制器,由控制器选择合适的视图。
二、为什么要使用MVC?
1、使用MVC的思想来设计一个软件,最根本的原因是为了实现模型的复用:
a.模型不用关心处理结果如何展示。比如,模型返回一些数据,然后交给不同的视图来展现(表格的方式、图形的方式等等)。
b.可以使用不同的视图来访问同一个模型。
2、代码的维护性更好
修改模型不会影响到视图,反过来,修改视图,也不会影响到模型。
3、方便测试
比如,将业务逻辑代码写在servlet里面,需要部署到容器上,然后才能测试。而将业务逻辑代码写在java类里面,可以直接用main()测试(不依赖容器)。
三、如何使用MVC来开发一个web应用(javaee)
1、使用java类来实现模型,使用jsp来实现视图,使用serlet或者filter来实现控制器
注意:模型也可以使用一些企业级的Java组件,比如,ejb,spring容器管理的JavaBean来实现。视图也可以使用jsf,模板技术(freemarker等)。
2、请求都发送给控制器(serlet),控制器依据请求的不同调用相应的模型(java类)来处理;模型返回的处理结果给控制器(servlet),然后控制器选择合适的视图(jsp)来展现处理结果。
四、MVC的缺点
使用mvc,会增加代码量、相应地也会增加软件开发的成文,设计的难度也会增加。
转载自: