首页 > 代码库 > 从设计角度分析MVC
从设计角度分析MVC
由于考试系统要用到MVC模式来设计,所以这次通过一些视频和网上的博客对其做了一些了解与学习,下面是一些学习的收获和感受。
Ps:原来写文章是从来也不写提纲的,现在通过不断的设计训练和代码注释的影响,没提纲就写不下去了……
言归正传,MVC作为一种软件设计模式,它用一种业务逻辑、数据和界面显示互相分离的方法组织代码。将业务逻辑单独封装,使得在界面及与用户交互的形式改变时不影响到逻辑。
1、 模式简介
MVC是一种创建Web应用程序的模式,其中:
Model(模型)是指要处理的业务代码和数据操作代码;
View (视图)显示数据,指的是界面及与用户进行交互的部分,视图通常依据Model创建;
Controller(控制器)处理输入,可以看做Model和View的桥梁。它从视图中读取数据,控制用户输入,并向 模型发送数据。
2、 模式图(来自baidu.baike)
说明:View通过人机交互将用户输入的指令和数据传递给Controller,Controller将其送至Model进行业务判断和数据存取等处理,然后Controller再根据业务逻辑选择不同的视图进行响应,最后将结果反馈给用户。
3、 与webFrom比较
对于MVC与WebForm体会还不深刻,孰优孰劣也不敢妄加评论,具体如何还是大家在实践中去体会吧。
先看看上边两张图,以后还会对MVC作进一步的分析。
4、 与经典三层的比较
三层架构分为UI界面层、BLL业务逻辑层、DAL数据访问层,它同样做到了界面、业务逻辑和数据的分离。
从解耦的角度看,MVC和三层架构都实现了很好的效果。都有助于管理复杂的应用程序和分组开发,因为我们可以在一个时间内专门关注一个方面。例如,可以在不依赖业务逻辑的情况下专注于界面/视图设计。同时也让应用程序的测试更加容易。
区别:1、三层里的UI相当于MVC里的V+C;BLL层+DAL层相当于MVC里的M。
2、侧重点不一样,三层是一种笼统的架构思想,没有限制具体的设计;而mvc就比较具体的说明它的设计方法。
三层是从整个应用程序架构的角度来分的,是为了解决整个应用程序中各个业务操作过程中不同阶段的代 码封装的问题,为了使程序员更加专注的处理某阶段的业务逻辑。
MVC是在应用程序(BS结构)的视图层划分出来的不同功能的几个模块。主要是为了解决应用程序用户界面的样式替换问题,把展示数据的HTML 页面尽可能的和业务代码分离。
总结:对于大中型项目MVC在开发效率上更快,但对于一些小项目WebForm从经济和时间上更为合适。架构方面,MVC和三层也并不是排斥的,相反,它们拥有很紧密的联系。总之,MVC有着广阔的发展前景,在J2EE上的火热程度也见证了它的时代适应性。
初识MVC,还望大家多多指导。
从设计角度分析MVC