您现在的位置是:首页 > IT基础架构 > 软件与服务 >

探讨OA软件热门实用技术之一:MVC架构

2009-08-27 18:03:00作者:石头来源:

摘要本文从发展的角度探讨近年来应用在OA软件上的一系列热门技术,这些技术对用户的使用将发挥重要价值。...

以前有人说OA软件的技术含量比较低,所以竞争很混乱,确实有点道理,但现在有实力的OA厂商们越来越注重对先进技术的使用,逐渐提升了自己的产品实力,拉开了与竞争者之间的差距。

本文将从发展的角度探讨近年来应用在OA软件上的一系列热门技术,这些技术对用户的使用将发挥重要价值。

MVC(Model/View/Controller)架构并不是一种新兴技术或者新兴思想,它是Xerox PARC在八十年代为编程语言Smalltalk-80发明的一种软件设计模式,最近几年被推荐为Sun公司J2EE平台的设计模式,并且受到越来越多的使用,在国内,尤其是OA软件领域也得到了充分的应用。

先简要介绍一下MVC架构的内容和工作过程:

1、模型(Model):

模型是应用程序的主体部分。模型表示业务数据,或者业务逻辑。在MVC的三个部件中,模型拥有最多的处理任务。例如它可能用象EJBs和ColdFusion Components这样的构件对象来处理数据库。被模型返回的数据是中立的,就是说模型与数据格式无关,这样一个模型能为多个视图提供数据。由于应用于模型的代码只需写一次就可以被多个视图重用,所以减少了代码的重复性。

2、视图(View):

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

3、控制器(controller):

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

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

通过实例来看看看MVC架构的好处:

华天软件作为一个注重技术优势的公司,是国内最早采用MVC架构的OA厂商之一,

通过在其网站上公布的DEMO版本,我们可以看出采用该体系结构的最大的好处是:数据与控制层与界面相互分离。

1、这是最重要的,多个视图能共享一个模型,现在需要用越来越多的方式来访问你的应用程序。对此,一个好的办法就是使用MVC,无论用户想要Flash界面或是WAP界面,用一个模型就能处理它们。由于已经将数据和业务规则从表示层分开,所以你可以最大化的重用你的代码了,这就大大提升了对用户个性化需求的响应速度。

华天OA系统比传统的MVC更进一步,界面层没有一行程序代码。不象传统的JAVA程序,前端是JSP,后端是JavaBean。实现了界面层与控制层的完全分离,用户即使不懂程序开发也能更改界面。

华天OA系统前端没有一行JAVA和JSP代码,是纯HTML和文本文件。所以,界面的改动将异常简单。他们在自己的方案里面承诺:换掉所有的界面,仅需要10天。

2、因为模型是自包含的,并且与控制器和视图相分离,所以很容易改变你的应用程序的数据层和业务规则。比如你想把你的数据库从MySQL移植到Oracle,或者改变你的基于RDBMS数据源到LDAP,只需改变你的模型即可。由于运用MVC的应用程序的三个部件是相互对立,改变其中一个不会影响其它两个,所以依据这种设计思想能构造良好的松偶合的构件。

在华天OA的数据层,可通过中间件进行沟通,这样不需要书写任何一行代码,通过简单的类与数据库表的映射实现数据库表的增删改。整个程序中没有一条SQL语句,不修改代码就可实现自动切换到各种数据库类型(如MySQL/SQLSERVER/ORACLE)。

3、可以使用控制器来联接不同的模型和视图去完成用户的需求,这样控制器可以为构造应用程序提供强有力的手段,这样能够极大的提升开发效率,并且保证系统的稳定性。

4、通过标签定义实现与业务层的连接。在HTML页面中,没有一行程序代码,只有标签定义。如果页面需要变更,只须更改标签与业务层的连接关系。

5、内部通过独立的子工程管理,这样既能保证各个子工程的系统独立性,又能确保对系统的整体管理。

6、通过页面与程序的分离,实现了多语言和多风格的不同展示系统。


(本文不涉密)
责任编辑:

站点信息

  • 运营主体:中国信息化周报
  • 商务合作:赵瑞华 010-88559646
  • 微信公众号:扫描二维码,关注我们