MVC框架

来源:互联网 发布:淘宝原图制作软件 编辑:程序博客网 时间:2024/06/15 23:59


MVC:模型--视图--控制器,一种Web应用程序设计模式,用一种业务逻辑、数据、视图显示分离设计的代码组织方式。

Model(模型逻辑):运用程序中用于处理运用程序数据逻辑的部分,通常模型对象负责在数据库中存取数据。

View(视图逻辑):运用程序中用于处理数据视图显示的部分,通常视图依赖模型数据创建的。

Controller(控制逻辑):运用程序中处理用户交互的部分,通常控制器通过视图读取数据,控制用户输入,然后传输给模型对象再到视图界面。

MVC分层有助于管理复杂的运用程序,可以在一个时间内专门专注于一个方面的开发,不同的开发人员同时进行不同模块的开发,增加软件开发的进度。例如,你可以在不依赖业务逻辑的情况下专注于视图界面的设计。同时也可以让运用程序的测试变的更加容易。

   优点:

1、耦合性低:

视图层和业务层分离,在修改视图代码的时候而不影响业务层逻辑、功能;同样,一个应用的业务流程或者业务规则的改变只需要改动MVC的模型层即可。因为模型与控制器和视图相分离,所以很容易改变应用程序的数据层和业务规则。

2、重用性高:

MVC模型允许多个视图来共享一个模型,它包括任何WEB(HTTP)浏览器或者无线浏览器(wap),比如,用户可以通过电脑也可通过手机来订购某样产品,虽然订购的方式不一样,但处理订购产品的方式是一样的。由于模型返回的数据没有进行格式化,所以同样的构件能被不同的界面使用。例如,很多数据可能用HTML来表示,但是也有可能用WAP来表示,而这些表示所需要的命令是改变视图层的实现方式,而控制层和模型层无需做任何改变。

3、生命周期成本低:

MVC使开发和维护用户接口的技术含量降低。

4、部署快:

使用MVC模式极大的缩短了开发的时间,这样开发人员可以把重心放在业务逻辑层的开发。

5、可维护性高:

视图层和业务层的分离使得WEB运用程序的维护和修改变得更加容易。

6、有利于软甲工程化管理:

由于不同的逻辑层各司其职,每一层不同的应用具有某些相同的特征,有利于通过工程化、工具化管理程序代码。控制器也提供了一个好处,就是可以使用控制器来联接不同的模型和视图去完成用户的需求,这样控制器可以为构造应用程序提供强有力的手段。给定一些可重用的模型和视图,控制器可以根据用户的需求选择模型进行处理,然后选择视图将处理结果显示给用户。

缺点:

1、没有明确的定义:

MVC内部的结构十分复杂,定义不是很明确,在使用的时候需要精心的设计。

2、不适合中小性项目的开发:

花费大量时间将MVC应用到规模并不是很大的应用程序通常会得不偿失。

3、增加系统的结构和实现的复杂性:

对于简单的界面,严格遵循MVC,使模型、视图与控制器分离,会增加结构的复杂性,并可能产生过多的更新操作,降低运行效率。

4、    视图和控制器之间联系过于密切:

视图与控制器是相互分离,但却是联系紧密的部件,视图没有控制器的存在,其应用是很有限的,反之亦然,这样就妨碍了他们的独立重用。

5、视图对于模型数据的低效访问:

依据模型操作接口的不同,视图可能需要多次调用才能获得足够的显示数据。对未变化数据的不必要的频繁访问,也将损害操作性能。

6、一把高级的界面工具和构造器不支持:

改造这些工具以适应MVC需要和建立分离的部件的代价是很高的,会造成MVC使用的困难。




0 0