3 系统总体设计
图3.1 J2EE架构图
3.2.2 MVC设计模式
MVC,即Model、View、Controller。他是当今最为流行的设计模式之一,其基本思想是把应用程序分成三个层次或者模块:视图层、模型层、控制器层。三个部分以最少的耦合、协同工作。从而提高应用的可扩充性和可维护性。
[13]
起初。MVC是针
对数据的不同需要、不同显示的应用而设计的。在经典的MVC模式中,事件由控制器根据时间的类型改变模型或视图,反之亦然。具体地说,模型维护一个视图列表,这些视图为获得模型变化通知,通常采用观察者模式登记模型。当模型发生改变时,模型向所有登记过的视图发送通知,视图中从对应的模型中获得信息,然后更新自己。其中,MVC架构可用图3.2直观的表示出来:
11
3 系统总体设计
图3.2 MVC架构图
MVC的三层模型的处理过程十分清晰,具体过程如下: 1. 控制器接受用户请求,然后决定调用哪个模型来进行处理。 2. 模型进行相应的逻辑处理,然后返回处理后的数据。 3. 控制器调用视图将模型返回的数据呈现给用户。 另外,MVC还有如下优点:
1. 多个视图共享一个模型。即同一个模型可以被不同的视图重用,大大提高了
代码的可重用性。
2. 由于MVC的各个模块相对独立,改变其中一个不会影响其他模块,所以开发
人员可以构建松散耦合的构件。
3. 控制器提高了应用程序的灵活性和可配置性。控制器可以连接不同的模型和
视图,去完成用户的需求,这样可以为构造应用程序提供强有力的手段。
12
3 系统总体设计
3.2.3 Spring框架
Spring是java平台上的一个开源应用框架。它的第一个版本是由Rod Johnson写出来的。Rod在他的Expert One-On-One Java EE Design and Development一书中首次发布了这个框架。Spring是一个分层的架构,由七个模块组成。Spring模块构建在核心容器智商,核心容器定义了创建、配置和管理Bean的方式。
Spring框架本身并没有强制实行任何特别的编程模式。在Java社区里,Spring作为EJB模型之外的另外一个选择甚至是替代品而广为流行。从设计上看,Spring给予了Java程序员许多的自由度,但同时对业界常见的问题也提供了良好的文档和易于使用的方法。
Spring框架的功能可以用在任何J2EE服务器中,这体现了它的方便易用性。对于Spring来说,它的核心要点是:支持不绑定到特定 J2EE 服务的可重用业务和数据访问对象。毫无疑问,这样的对象可以在不同J2EE环境 (Web 或 EJB)、独立应用程序、测试环境之间重用。
并且由于Spring框架的核心功能在任何Java应用中都是适用的。在基于Java企业平台上的web应用中,大量的拓展和改进得以形成。为此,Spring获得了广泛的欢迎,并被许多公司认可为具有战略意义的重要框架。
Spring框架图如下图3.3所示:
[2]
图3.3 Spring框架图
3.2.4 持久层模式
随着软件的发展,要满足新应用程序不断增长的需要,同时保持可控制成本,比较
13
3 系统总体设计
可靠便捷的方法就是用框架集建立应用程序,并提供一组可以复用的软件服务集.而持久性框架就是实现软件复用的重要途径之一,它同时支持设计复用和代码复用,并且将应用程序与其使用和操纵的数据源分离,从而使程序开发变得方便快捷,节省了大量不必要损失的时间,大大提高了软件开发的工作效率.
在图3.4中可见,数据持久性框架完全抽象了访问数据方法的细节,严格分开表示了业务层与数据层,同时使用两个设计模式:
? Data Access Object设计模式 ? Value Object设计模式
图3.4 数据持久性框架
Data Access Object设计模式完全包装数据读取与操纵,并封装与数据库交互的数据访问API,如JDBC、JDO、SQLJ等等。Data Access Object模式用数值对象包装从数据库读取和发送到数据库的数据,与业务层通信。
图3.5中显示的Value Object设计模式封装从数据库读取和发送到数据库的数据。Value Object设计模式向业务应用程序开发人员隐藏物理表格结构,抽象数据库中的数据关系,用Java Collection机制从数据库中取得父子关系、一对多关系和多对多关系。数值对象也可以向上传递到表示层,向最终用户显示信息。
持久性框架中提供下列服务,让开发人员在持久性框架之上建立应用程序: ? 分开数据持久逻辑与表示和业务逻辑的整洁机制。 ? 不让框架上建立的应用程序了解数据所在的数据库平台。
? 抽象数据库中存储数据的物理细节和数据库中数据实体之间存在的关系。 ? 简化开发过程,隐藏打开数据库连接、发出数据读取与操纵命令和事务管理
14
3 系统总体设计
的细节。
[6]
15