以你可以最大化的重用你的代码了,这就大大提升了对用户个性化需求的响应速度。
华天OA系统比传统的MVC更进一步,界面层没有一行程序代码。不象传统的JAVA程序,前端是JSP,后端是Java Bean。实现了界面层与控制层的完全分离,用户即使不懂
程序开发也能更改界面。
华天OA系统前端没有一行JAVA和JSP代码,是纯HTML和文本文件。所以,界面的改动将异常简单。他们在自己的
方案里面承诺:换掉所有的界面,仅需要10天。
2、因为模型是自包含的,并且与控制器和视图相分离,所以很容易改变你的应用程序的数据层和业务规则。比如你想把你的数据库从MySQL移植到Oracle,或者改变你的基于RDBMS数据源到LDAP,只需改变你的模型即可。由于运用MVC的应用程序的三个部件是相互对立,改变其中一个不会影响其它两个,所以依据这种
设计思想能构造良好的松偶合的构件。
在华天OA的数据层,可通过中间件进行沟通,这样不需要书写任何一行代码,通过简单的类与数据库表的映射实现数据库表的增删改。整个程序中没有一条SQL语句,不修改代码就可实现自动切换到各种数据库类型(如MySQL/SQLSERVER/ORACLE)。
3、可以使用控制器来联接不同的模型和视图去完成用户的需求,这样控制器可以为构造应用程序提供强有力的手段,这样能够极大的提升开发效率,并且保证系统的稳定性。
4、通过
标签定义实现与业务层的连接。在
HTML页面中,没有一行程序代码,只有标签定义。如果页面需要变更,只须更改标签与业务层的连接关系。
5、内部通过独立的子工程管理,这样既能保证各个子工程的系统独立性,又能确保对系统的整体管理。
6、通过页面与程序的分离,实现了多语言和多风格的不同展示
系统。
当然对实现这种方式唯一的认识就是系统的结构层次划分很清楚,但是具体的优点很不足就不是很清楚了,在wiki上找到了如下定义:
MVC的优点
大部分用过程语言比如ASP、
PHP开发出来的Web应用,初始的开发模板就是混合层的数据编程。例如,直接向数据库发送请求并用HTML显示,开发速度往往比较快,但由于数据页面的分离不是很直接,因而很难体现出业务模型的样子或者模型的重用性。产品设计弹性力度很小,很难满足用户的变化性需求。MVC要求对应用分层,虽然要花费额外的工作,但产品的结构清晰,产品的应用通过模型可以得到更好地体现。
首先,最重要的是应该有多个视图对应一个模型的能力。在目前用户需求的快速变化下,可能有多种方式访问应用的要求。例如,订单模型可能有本系统的订单,也有网上订单,或者其他系统的订单,但对于订单的处理都是一样,也就是说订单的处理是一致的。按 MVC设计模式,一个订单模型以及多个视图即可解决
问题。这样减少了代码的复制,即减少了代码的维护量,一旦模型发生改变,也易于维护。 其次,由于模型返回的数据不带任何显示格式,因而这些模型也可直接应用于接口的使用。
再次,由于一个应用被分离为三层,因此有时改变其中的一层就能满足应用的改变。一个应用的业务流程或者业务规则的改变只需改动MVC的模型层。
控制层的概念也很有效,由于它把不同的模型和不同的视图组合在一起完成不同的请求,因此,控制层可以说是包含了用户请求权限的概念。
最后,它还有利于软件工程化管理。由于不同的层各司其职,每一层不同的应用具有某些相同的特征,有利于通过工程化、工具化产生管理程序代码。
[编辑本段]
MVC的不足
MVC的不足体现在以下几个方面:
(1)增加了系统结构和实现的复杂性。对于简单的界面,严格遵循MVC,使模型、视图与控制器分离,会增加结构的复杂性,并可能产生过多的更新操作,降低运行效率。
(2)视图与控制器间的过于紧密的