MVC设计模式

     MVC设计模式是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model)、视图(View)和控制器(Controller)。

    MVC模式最早为Trygve Reenskaug提出,为施乐帕罗奥多研究中心(Xerox PARC)的Smalltalk语言发明的一种软件设计模式。

    MVC模式是一种复合设计模式,一种在特定场合用于解决某种实际问题来得出的可以反复实践的解决方案。

    MVC可对程序的后期维护和扩展提供了方便,并且使程序某些部分的重用提供了方便。而且MVC也使程序简化,更加直观。

l      控制器Controller:对请求进行处理,负责请求转发;

l      视图View:界面设计人员进行图形界面设计;

l      模型Model:程序编写程序应用的功能(实现算法等等)、数据库管理;

    我们所了解的三层框架,也就是:表述层(WEB层)、业务逻辑层(Business Logic)、以及数据访问层(Date Access)。

l      WEB层:包含JSP和Servlet等与WEB相关的内容;

l      业务层:业务层中不包含JavaWeb API,它只关心业务逻辑;

l      数据层:封装了对数据库的访问细节;

    需要注意的是:在业务层中不能出现JavaWeb API,例如request、response等。也就是说业务层的代码是可以重用的,甚至可以应用到非Web环境中。业务层的每一个方法可以理解成一个万能的,例如转账业务方法。业务层依赖数据层,而Web层依赖业务层。可以用下图表示:

 

 

    那么三层框架与MVC之间的区别是什么呢?MVC是一种设计模式,同样是架构级别的,相同的地方在于他们都有一个表现层但是他们不同的地方在于其他的两个层。在三层架构中没有定义Controller的概念。这是我认为最不同的地方。而MVC也没有把业务的逻辑访问看成两个层,这是采用三层架构或MVC搭建程序最主要的区别。三层结构可以应用于任何语言、任何技术的应用程序;而MVC只是为了解决BS应用程序视图层各部分的耦合关系。它们互不冲突,可以同时存在,也可根据情况使用其中一种。从解耦的角度来看三层架构和MVC是一致的只不过划分的方法不一样罢了。

    我们学习它,那么它肯定有其价值。MVC的有以下几项优点:低耦合性、高重用性和可适用性、较低的生命周期成本、快速的部署、可维护性、有利于软件工程化管理。当然有优点也有缺点,那就是内部结构复杂,不容易理解,文件数量大,管理难度自然也就大。以下就是mvc的工作原理:

    Model1中,用户向控制层(Controller)发送请求,控制层new Model();委托模型进行数据处理,模型层(model)进行视图渲染。

 

 

    Model1的耦合度太高,因此有了新的设计model2 。mvc的设计思想就是任何重定向都能解耦合。控制层分别与用户、视图层、模型层进行双向连接,而用户、视图层、模型曾之间两两不互联。如下图所示:

 

 

    MVC中每一块内部特别是Model内部经常被设计为多层的。一个良好的MVC模式构建的结构中,Control是核心,小且较为稳定的,可以作为一个核心框架来提供,有扩展点,但基本上可以简单配置不需要任何代码就可以运行。

posted @ 2017-04-23 20:14  Huangliping  阅读(346)  评论(0编辑  收藏  举报