首页 > 代码库 > MVC简单认识

MVC简单认识

          学习一个新知识,首先要了解的就是下面几个问题,它是什么?它能干什么?使用它有什么好处?这篇文章就围绕这几个问题来展开讨论。

         mvc不是一种编程语言,严格来说,它都不算是一门技术,它是开发软件时使用的一种“架构(框架)”。他就像是一种开发模式,或者是一个程序设计模板。

         软件开发人员老生常谈的一个问题,就是软件开发过程中的变化,需求会变,技术会变,客户会变,老板会变,更痛苦的是PM也会变,开发过程中没有什么是固定不变的,改变会给软件开发带来非常大的变故,这些我们都无法改变,我们唯一能做的就是尽可能的减少变化带来的损失,mvc就是其中的一种解决方案。

         MVCModel View Controller,它是模型,视图,控制器的缩写,是将界面显示,业务逻辑和数据分离的一种模型,这样我们就可以在不更改逻辑的基础上修改界面显示。降低了界面和逻辑功能之间的耦合性,增加了代码复用性。


         Model层,也叫模型层,主要负责和数据交互的任务。模型层主要功能有定义数据结构,从数据库读、取数据,数据格式验证,读数据进行加工处理。model层类似与三层架构中的DAL层,主要与数据库进行交互,并且进行简单的数据处理。

         View层,即视图层,负责所有界面层的任务,其实就是写入数据和显示数据。主要功能有获得数据,显示数据,决定界面技术(HTMLXMLFlash等),界面排版;向Controller返回数据,决定数据传送方式,数据验证。view层类似于三层中的UI层,主要是和用户进行数据交互的。

          Controller层,集控制层,接受用户输入的数据,调用模型和视图完成用户的需求。当用户单击超链接或者发送HTML表单时,控制器其实不做任何的处理和输出,它只是根据实际情况决定调用哪个模型或者视图去处理这个请求,然后决定使用哪个视图来显示返回的处理结果。Controller层和三层中的BLL层不一样,因为它没有数据处理或者是逻辑处理功能,它只是控制调用其他组件来完成需求。

       看一个简单的页面显示示例:


        首先,页面响应用户的事件,然后向controller发送用户需求,controller根据用户需求调用model组件,model组件完成数据操作,然后返回到controllercontroller根据需求,选取对应view,将结果显示到界面。

        可以看到,controller将界面显示和数据处理完全的分隔开了,降低了它们之间的耦合,开发人员可以根据用户需求任意更改界面显示,而不用考虑数据处理的功能,这样,系统的耦合性非常低,并且增加了下层代码复用性。

       和三层的比较:


      可以看出来,mvc和三层区别很大,三层的划分是为了软件开发过程中不同阶段的代码封装问题,层次的划分增加了系统的灵活性,降低了系统耦合度(没有完全解决这个问题)。三层架构可以应用在所有的软件开发中。mvc是为了解决页面的更换问题,把页面显示和业务逻辑分开,mvc把所有的页面显示放到view中,把数据操作和处理封装到了model中,controller进行整体控制。mvc是为了解决BS项目中界面显示和业务逻辑的耦合问题。

       总结:MVC和三层其实都是为了降低系统耦合性的,只是它们侧重点不同,它们没有好坏之分,只是适合不适合解决这个问题或者能否把它用好的问题。


MVC简单认识