开始之前
这个系列分为两部分,可以供所有对改善软件应用程序设计感兴趣的程序员、架构师 、开发人员和技术爱好者阅读。完成本系列的学习之后,您将能够使用其中介绍的最佳实践,并选择正确 的设计模式来解决具体的问题。
关于本系列
本系列教程通过铁路订票案例研究说明如何将设计模式应用于解决体系结构设计问题。
第 1 部分介绍了一个铁路订票系统,带您了解了设计中的几项注意事项,它们可以帮助您决定在何处使用设计 模式以便改善设计并进而提高系统的整体性能。
本教程讨论了应用程序的非功能需求,并阐述了软件架构师为什么必须处理这些会对应用程序的性能 、可用性、可伸缩性和增强性造成影响的需求。另外还将概略地讨论灾难恢复和故障恢复功能的注意事项 。本教程的最后将讨论在您的设计中使用框架的问题。
关于本教程
体系结构模式能帮助您为软件系统定义一个基础结构组织或模式。它还能提供一组预定义的子系统, 为系统中使用的每个组件指定相应的责任,而且它还包含一些在组织子系统之间的关系时使用的规则和指 导原则。设计模式提供了一个模式,旨在细化那些用来定义整个软件应用程序的子系统或组件。它还提供 了一套词汇表,可以定义子系统之间的关系。设计模式用于描述某个特定环境下出现的一般设计问题的解 决方案。
本教程对第 1 部分中讨论的铁路订票系统进行了扩充,在其中应用了几种体系结构模式 。体系结构模式可分为不同的类型。部署体系结构模式是最为重要的,因为应用程序的部署方式对于所有 非功能需求(如性能和可用性)都具有关键的意义。
在本教程中,您将从架构师的视角来了解铁路订票系统的非功能需求。您会学习如何使用不同的体系 结构模式来改进系统的基本设计。本教程还将讨论使用 MVC、Struts 和 Spring 等框架处理其他设计问 题,包括利用一种框架(或多种框架的组合)进行应用程序开发时的代码重用和总体时间问题。
本教程中讨论的一些体系结构注意事项有:
高性能
高可伸缩性
故障转移和故障反 馈功能
灾难恢复
先决条件
本教程假定您熟悉设计模式,并了解基本的面向对象的概念。如果您对统一建模语言 (Unified Modeling Language, UML) 有一定的了解,这将有所帮助,但并不是必需的。示例代码采用 Java 编写,但其内容非常简单,可以方便地转换为您选择的语言。
如果需要,可以下载 Java 5.0。