您的位置:首页 > 移动开发 > Android开发

Android 程序设计的骨架--MVC

2016-02-25 10:14 357 查看

MVC设计模式简介:

MVC 本来是存在于Desktop 程序中的,M 是指数据模型,V 是指用户界面,C 则是控制器。使用MVC 的目的是将M 和V 的代码分离,从而使同一个程序可以使用不同的表现形式。比如一批统计数据你可以分别用柱状图、饼图来表示。C 存在的目的则是确保M 和V 的同步,一旦M 改变,V 应该同步更新。

模型-视图-控制器(MVC)是Xerox PARC 在八十年代为编程语言Smalltalk-80 发明的一种软件设计模式,至今已被广泛使用。它有很多好处,但也有一些缺点。

MVC 是一个设计模式,它强制性的将应用程序的输入、处理和输出分开。使用MVC 应用程序被分成三个核心部件:模型、视图、控制器,它们各自处理自己的任务。

视图

视图是用户看到并与之交互的界面。对老式的Web 应用程序来说,视图就是由HTML 元素组成的界面,在新式的Web 应用程序中,HTML 依旧在视图中扮演着重要的角色,但一些新的技术已层出不穷,它们包括Adobe Flash 和像XHTML、XML/XSL、WML 等一些标识语言和Web services.

如何处理应用程序的界面变得越来越有挑战性。MVC 一个大的好处是它能为你的应用程序处理很多不同的视图。在视图中其实没有真正的处理发生,不管这些数据是联机存储的还是一个雇员列表,作为视图来讲,它只是作为一种输出数据并允许用户操纵的式。

模型

模型表示企业数据和业务规则。在MVC 的三个部件中,模型拥有最多的处理任务。例如它可能用像EJBs 和ColdFusionComponents 这样的构件对象来处理数据库。被模型返回的数据是中立的,就是说模型与数据格式无关,这样一个模型能为多个视图提供数据。由于应用于模型的代码只需写一次就可以被多个视图重用,所以减少了代码的冗余,增加了代码的复用性。

控制器

控制器接受用户的输入并调用模型和视图去完成用户的需求。所以当单击Web 页面中的超链接和发送HTML 表单时,控制器(例如:servlet)本身不输出任何东西和做任何处理。它只是接收请求并决定调用哪个模型构件去处理请求,然后确定用哪个视图来显示模型处理返回的数据。

现在我们总结MVC 的处理过程,首先控制器接收用户的请求,并决定应该调用哪个模型来进行处理,然后模型用业务逻辑来处理用户的请求并返回数据,最后控制器用相应的视图格式化模型返回的数据,并通过表示层呈现给用户。

MVC 的优点:

◆低耦合性。视图层和业务层分离,这样就允许更改视图层代码而不用重新编译模型和控制器代码,同样,一个应用的业务流程或者业务规则的改变只需要改动MVC 的模型层即可。因为模型与控制器和视图相分离,所以很容易改变应用程序的数据层和业务规则。

◆高重用性和可适用性。随着技术的不断进步,现在需要用越来越多的方式来访问应用程序。MVC 模式允许你使用各种不同样式的视图来访问同一个服务器端的代码。它包括任何WEB(HTTP)浏览器或者无线浏览器(WAP),比如,用户可以通过电脑也可通过手机来订购某样产品,虽然订购的方式不一样,但处理订购产品的方式是一样的。由于模型返回的数据没有进行格式化,所以样的构件能被不同的界面使用。例如,很多数据可能用HTML 来表示,但是也有可能用WAP 来表示,而这些表示所需要的仅仅是改变视图层的实现方式,而控制层和模型层无需做任何改变。

◆较低的生命周期成本。MVC 使降低开发和维护用户接口的技术含量成为可能。

◆快速的部署。使用MVC 模式使开发时间得到相当大的缩减,它使程序员( Java 开发人员)集中精力于业务逻辑,界面程序员(HTML 和JSP 开发人员)集中精力于表现形式上。

◆可维护性。分离视图层和业务逻辑层也使得WEB 应用更易于维护和修改。

◆有利于软件工程化管理。由于不同的层各司其职,每一层不同的应用具有某些相同的特征,有利于通过工程化、工具化管理程序代码。

MVC 的缺点:

MVC 的缺点是由于它没有明确的定义,所以完全理解MVC 并不是很容易。使用MVC 需要精心的计划,由于它的内部原理比较复杂,所以需要花费一些时间去思考。你将不得不花费相当可观的时间去考虑如何将MVC 运用到你的应用程序,同时由于模型和视图要严格的分离,这样也给调试应用程序到来了一定的困难。每个构件在使用之前都需要经过彻底的测试。一旦你的构件经过了测试,你就可以毫无顾忌的重用它们了。根据开发者经验,由于开发者将一个应用程序分成了三个部件,所以使用MVC
同时也意味着你将要管理比以前更多的文件,这一点是显而易见的。这样好像我们的工作量增加了,但是请记住这比起它所能带给我们的好处是不值一提的。

MVC 并不适合小型甚至中等规模的应用程序,花费大量时间将MVC 应用到规模并不是很大的应用程序通常会得不偿失。

MVC 设计模式是一个很好创建软件的途径,它所提倡的一些原则,像内容和显示互相分离可能比较好理解。但是如果你要隔离模型、视图和控制器的构件,你可能需要重新思考你的应用程序,尤其是应用程序的构架方面。如果你肯接受MVC,并且有能力应付它所带来的额外的工作和复杂性,MVC 将会使你的软件在健壮性、代码重用和结构方面上一个新的台阶。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Android mvc