第1章J2EE设计模式 web层设计模式”一章包括卜列模式: intercepting Filter(来自JEE类别) Front Controller(来自J2EE类别 View Helper(来自J2EE类别) Composite View(来自J2EE类别) Service- to- Worker(来自J2EE类别) Dispatcher View(来自J2EE类别) “持久性框架设计模式”一章包括下列模式 Data Access Object(来自]2EE类别) Value Object(来自J2EE类别) Service locator(来自J2EE类别) “改进性能与伸缩性的设计模式”一章包括下列模式 Value object(来自J2EE类别) Value Object Assembler(来自J2EE类别) Business Delegate(来自」EE类别) Session Facade(来自J2EE类别) Message Facade(来自 The ServiceSide com类别) Service locator(来自J2EE类别) “管理安全性的设计模式”一章包括下列模式: Risk Assessment and Management Single access point Check Point “企业集成设计模式”一章包括下列模式 Integration Broker Integration Mediator Virtual Component (Integration Facade) Data Access Object(来自J2EE类别) Data Mapping Process Automator “复用性、可维护性与扩展性设计模式”一章包括下列模式: Facade(来自四人专家组类别) Abstract Factory(来自四人专家组类别) Decorator(来自四人专家组类别) Template Method(来自四人专家组类别) Builder(来四人专家组类别)
实用]2EE设计模式编程指南 模式之间的关系 卜一章要介绍来自四个源的模式,除了EE、 TheServerSide. com和四人专家组模式之外 我们还要介绍集成模式。我们用图形显示它们之间的重要关系,不同模型组采用卜列阴影 见图1.6所示。 图1.6 图1.7显示了模式之间的重要关系。 intercepting Dispatcher Ve Data Access
第1章J2EE设计模式 小结 本章介绍了模式对达到高级复用很重要,可以复用思想。模式是一个情境中常见问题 的最佳解决方案。尽管模式根源于建筑学和民用工程,但已经成为软件开发中的重要概念。 模式可以得到常见问题的最佳解决方案。 模式可以用于软件开发中几乎所有阶段。也许最主要的是设计模式,是针对设计问题 的。模式是找出来的,而不是凭空发明的。要找出模式,就需要大量成功项目和丰富的经验 找出模式是个困难而责任重大的工作,应能提供设计问题的最佳方案。因此,模式应尽量多 多验证 好在大部分人不需要找出模式,只要使用模式。要成功地使用模式,就应能选择最合 适的模式。尽管如何选择最合适的模式有很多建议,但必须了解模式解决什么问题,采用何 种解决方案,才能选择最合适的模式。了解模式之间的关系也很重要。 使用模式是设计软件的好办法,但必须明智地使用模式,即不能过份滥用,而应评估 其利弊,否则可能使应用程序过量工程。另一方面,如果根本不用模式,则可能使应用程序 不足量工程。这两种情况下可以通过因素改变改进设计。 读到模式时,就不能不介绍反模式。它们与模式相对,显示软件工程中的不良做法和 不良解。了解反模式有助于避免这些常见错误 设计模式可以是通用的,可以独立于特定编程语言、平台和域,也可以针对特定编程 语言、平台和域。我们主要介绍]2EE设计模式。这些设计模式显示如何解决J2EE应用程序 的常见设计问题。本章概述了最主要的J2EE模式和模式类别 下面几章详细介绍如何在特定域中采用J2EE模式,介绍采用最主要的J2EE模式的具体 例子和最佳做法
实用J2EE设计模式编程指南 第2章Web层设计模式 设计Web应用程序的一个难点是创建结构合理的整洁的瘦客户机层,难点在于组合正确 的外观和行为,同时包装表示逻辑,不把任何业务逻辑放到这一层中,并创建易于阅读和易 于维护的代码。此外,表示层通常还有其他要求,如用户验证、数据加密、会话管理、用户 个性化和请求处理 木章介绍设计与管理Web应用程序顶层的问题,介绍客户层的技术需求和如何用]2EE 表示设计模式解决 我们开发一个宾馆订房管理系统的应用程序,讨论这些模式。这个应用程序主要考虑 J2EE表示模式,但本身是个完整的可部署企业应用程序。 表示模式 模型视图控制器(MVC, Model View Controller)模式是第一个分开表示逻辑与业务 逻辑的设计模式。MVC引入视图(表示层)、模型(数据)和协调两者的控制器。在出现 MVC模式之前,用户界面设计通常把这些层合并在一起,而MvC模式则把它们分离开来 提高灵活性与复用性。 MvC定义“预订”或“通知”协议,分离视图与模型。视图要保证反映模型状态。模 型数据发生改变时,所有视图得到通知,每个视图可以更新自己。这个方法可以对一个模型 连接不同表示,可以创建新视图而不必改变模型或控制器。木章的“视图管理”一节将详细 介绍这个问题。 随着 Sun Java Center J2EE设计模式的引入,企业应用程序设计人员可以选择各种方 案,解决多个问题,可以达到巧妙的解 我们要介绍下列J2EE表示层模式 Intercepting Filter Front Controller View Helper ° Service-to- Worker Dispatcher View 还有下列支持模式 Model View Controller Abstract Factory
第2章Web层设计模式 案例:宾馆订房管理系统 这个应用程序主要考虑客户机管理方面,演示核心J2EE模式的用法。我们用这个例 描述方案中引入的模式。 首先要看看应用程序需求及其用例模型。 应用程序管理宾馆细节,基于某些条件搜索宾馆的功能,并提供一个订房系统,还包 括其他宾馆信息,如名称、地址、类型、所订房间、宾馆细节变化情况,等等。它使宾馆集 团或连锁店可以用一个远程系统管理各种订房需求。这个Web应用程序可以扩展成提供通用 宾馆订房系统,使用户叮以找到满足要求的宾馆,检查费用与是否有房以及订房。 宾馆系统应灵活,提供各种功能,这也取决于用户的角色。下面是要与宾馆系统交h 的用户角色清单 Customers(客户)搜索宾馆以匹配指定条件,浏览所选宾馆的细节,检查费用与是 否有房以及订房 ·宾馆员工帮客户处理通过传真、E-mail或电话收到的订房请求 Administrators(管理员)可以作为Web客户或宾馆员工,还可以创建新宾馆项目、删 除宾馆项目和管理信息 这个应用程序的范围很大,但本例中只限于设计域和与管理员用例有关的特定区域的 实现域。 用例模型 框图2显示了宾馆应用程序的用例模型,分为下列用例段 子 View Hotel Web Pages包括浏览 Book 针对特定宾馆设计的一组web页面 view Hotel Web Rages 一 Search for a Hotel View Hotel Details View Hotel Details包括一组条件,标 条件,如宾馆名 称、芡型、连锁,等等 Hotel Administrator ecomm ssion Hotel