MVC

MVC全名是Model View Controller即模型-视图-控制器,它是一种软件设计的典范。它将业务逻辑、数据、界面显示分离开来进行代码的管理,各个部分进行改变时不会影响到其他部分,维护时可以有针对性的维护某一方面。

MVC的第一个部分即模型,它的处理任务是最多的,主要负责处理应用程序中的数据,即处理数据的存取。它提供的数据可以说是一个共享资源,因为它可以为多个不同的视图提供数据。并且它对于数据存取的代码只需写一次即可,增强了代码的重用性,

第二个部分视图,视图即与用户进行交互的的界面,视图只是作为数据的一个显示器,它并没有真正的进行数据的处理。

第三个部分控制器,它相当于人的大脑中枢,它接受用户的输入,然后选择调用那个视图或者模型相应用户的请求,它只是负责请求的接收和决定调用那个模块来处理这个请求,然后再决定用哪个视图来显示返回的数据。

所以总体来说,三个模块各司其职,来共同使得应用程序能够正常使用,而且每个模块只是履行自己的职责,并没有越界去干预其他模块的功能,使得后期维护更加的有条理。

MVC最经典的例子就是jsp + servlet + JavaBean。其中JavaBean是模型模块,它负责连接数据库,对于数据库进行查询和更新;jsp即视图模块,负责呈现给用户一个网页的界面,即将从数据库中获取的数据呈现为网页;servlet即控制器模块,负责接收用户的请求,并调用jsp或者JavaBean来实现用户想要的结果。以前写网页都是直接网页里嵌servlet负责的部分,维护起来特别不方便,而且一旦出错定位错误也非常麻烦,使用这种MVC模式之后,使得维护更加方便,而且在一定程度上增强了程序的可重用性。

现在正在学的SSH的框架中struts和spring也是对于MVC思想的应用。

首先struts占有了MVC框架中最大的市场份额,它由一组相互协作的类、servlet以及jsp tag lib组成,它是MVC设计模式的一种变化类型,它具有自己的控制器,同时整合了其他技术来实现模型层和视图层,在模型层他可以很容易的和数据访问技术结合包括JDBC、EJB(Enterprise JavaBean是sun的JavaEE服务器端组件模型),在视图层它可以和JSP等表示层组件相结合。

Spring是一个控制反转和面向切面的容器框架,它使得使用基本的javaBean来完成以前只能使用EJB来完成的事情,他可以有效的解决企业应用文化的复杂性。

由此可见MVC思想具有诸多优点,具体如下:

1、  耦合性低。模型、业务视图和控制器三个模块相分离,使得可以很容易改变应用程序的数据层和规则,因为无论改变哪个部分都不会影响到其他模块,使得各模块之间的耦合度尽可能低。

2、  重用性高。因为多个视图可以访问一个模型,使得模型的代码的重用性得到了很大程度上的提高。

3、  可维护性高。因为各个模块相互分离,所以维护系统时可以有针对性的进行维护,针对不同部分采用不同的方法,有效的避免了以前未分离时进行维护对于系统维护时方法采用的问题。

4、  部署快。使用MVC模式可以使得开发时间得到很大程度上的缩减,从而使得开发人员可以集中的研究业务逻辑,界面程序员集中精力在表现形式上。

每个事物都具有两面性,所以MVC也具有它的缺点。

1、  不适合小型,中等规模的应用程序。因为MVC的应用需要花费大量的时间,对于中小型项目来说,采用这种模式进行开发,会大大影响项目的开发时间。

2、  增加了系统结果和实现的复杂性。对于比较简单的界面,依旧使用这种模式进行开发,会增加系统结构的复杂性,降低运行效率。

3、  视图与控制器之间连接过于紧密。虽然视图与控制器相互分离,但是视图脱离控制器之后应用极为有限,所以阻碍了视图的独立重用。

4、  视图对模型数据的低效率访问。因为模型操作接口的不同,视图可能需要多次调用才能获得足够的要进行显示的数据,从而使得对于不必要数据的访问也增加了,所以对于数据的访问的效率大大降低。

MVC思想的使用虽然可能会让程序的效率降低,但是对于维护和可重用来说MVC可以说做的比较好,大型项目适合采用这种思想来进行开发。

原文地址:https://www.cnblogs.com/muamu/p/6749695.html