(2)允许多种视图对应一个模型,可以很方便地用多个视图来显示多套数据,而模型层的处理则是一致的,从而使系统能方便地支持其它新的客户端类型。
(3)当三层间的接口设计完成以后,就可以开展并行开发,从而有利于软件工程化管理,提高开发效率。
(4)MVC模式中各部分的责任划分得很清楚,从而简化了测试工作,文护人员很容易了解程序的结构,便于文护工作的进行;同时各组件的分界线就是分发接口点,使得应用程序的发布更容易,并且支持渐进式升级。同时,使用MVC开发模式也有一些不足之处:
(1)增加了系统结构和实现的复杂性。对于简单的系统,严格遵循MVC模式,使模型、视图与控制器分离,会增加系统的复杂性,降低开发效率。
(2)视图与控制器间的过于紧密的连接。视图与控制器是相互分离,但也确实是联系紧密的部件,视图没有控制器的存在,其应用是很有限的,反之亦然,这样就妨碍了它们的独立重用。
(3)视图对模型数据的低效率访问。实际处理中,视图可能需要多次调用模型层中的操作才能获得足够的显示数据,而对未变化数据的不必要的频繁访问和更新操作,也将降低运行效率,损害操作性能。
2.3 模型层
系统中所有的具体业务逻辑操作以及对数据库的存取操作都属于模型层。在实际开发中,通常把逻辑处理中相对独立的业务逻辑操作封装成JavaBean类,由控制层中的功能模块调用,把对数据库表的操作封装成相应的DAO类,供其它模块调用,这些类之间的相互协作实现了系统的逻辑处理功能。如果将这些对象间的依赖关系以编码的形式写入类中,会造成系统模块间的紧耦合,不利于系统的扩展和调试,因此引入Spring框架的IoC容器,对模型层中的类进行管理,实现模块间的解耦。
模型层中很重要的一个方面就是对象数据的持久化工作,对数据库的访问是模型层处理的重要组成部分。通过第二章的介绍可知,如果采用普通的JDBC API访问数据库,将大大增加Java代码量,不符合面向对象的程序设计思想,且Java代码与SQL语句的混编不便于程序的修改和阅读。为此,在模型层处理中引入Mybatis框架,负责数据的持久化处理。Mybatis是目前最流行的持久层框架之一,也是事实上的ORM标准。通过它,开发人员可以使用面向对象的操作方式访问数据库记录,大大简化数据库的操作。同时,它也能和Spring框架天然的集成在一起使用。
因此,本框架在模型层的设计中主要采用Spring+Mybatis实现,主要通过Spring的IoC容器对模型层中的类对象进行管理,实现对象间的解耦。此外,使用Mybatis框架实现数据持久化工作,从而方便数据库的操作和移植。
在模型层的实现中,要把封装了具体业务逻辑操作的JavaBean委托给Spring的IoC容器进行管理。其实现方式较简单,在Spring的配置文件中声明要使用的Bean元素即可,其中需要设置与其它类的依赖关系,以便IoC容器在运行时动态注入所需对象。
此外,本框架采用MyBatis实现对数据库的访问,完成对象的持久化工作。为此需要配置MyBatis使用的DataSource、SessionFactory等资源。Spring允许用户在其配置文件中以Bean的方式定义MyBatis使用的JDBC DataSource等数据访问资源。
以上配置信息中,使用class参数指定要创建数据源类型,本例中使用Apache的DBCP数据源,Hibernate还支持C3P0等多种数据源。driverClassName参数指定数据源使用的驱动程序,本例使用SQL Server的驱动,url参数指定连接数据库服务器的URL地址。username和password指定了数据库的用户名和密码。 J2EE基于Web实现公共信息和资料的发布管理和控制(5):http://www.751com.cn/jisuanji/lunwen_7518.html