helper bean的实现
很明显,这个场景下helper bean的实现对于不同的用例来说是应该是不同的。一般而言,一个helper bean通常需要从请求中、被收集到的等价的额外信息中和其他参与者(例如:会话bean和实体bean)中提取适当的表单参数,然后,最终产生可以用于显示的处理结果。
这个处理过程的部分例子见下面清单。注意xde模式引擎完全消除了手工创建helper类的需要。你需要做的只是在向导中简单的所选择"generated value"选项,并且输入helper类的名字。图8显示了这个向导的截图。
|

图8: 自动产生基本的helper bean
显示结果
这里再一次强调,有不同的方法可以完成相同的工作。典型的情况下,数据对于jsp来说应该是可得到的,jsp将负责数据的显示格式。图9 显示了这种静态的关系。对于此方法,jsp源代码显示在图9 的下面。

图9 :jsp与被格式化/显示的数据之间的关系
|
代码模板(code templates)
代码模板是另一个rational xde提供的用于简化开发人员开发工作的能力。他们为以下方面提供非常有效的机制:
- 代码片断和算法的重用
- 对特定问题实现基于代码共享的一致性的解决方案以
- 创建标准的头信息和注释
rational xde 对代码模板提供了实质性的支持。除了可扩展的、内建的基础结构外,它还提供了以下的能力:
- 绑定一个或多个代码模板到一个方法
- 根据需要去除一个代码模板的绑定
- 重新安排绑定顺序以满足代码产生的需要
- 参数化代码模板
在我们的例子中,你能够创建一个代码模板以建立用例和helper类的映射。然后你可以将代码模板多次绑定到构造函数,并且为代码模板简单的提供不同的缺省值以自定义代码的生成。
图10显示了这样的一个例子。

图10:建立用例和helper bean映射的代码模板
代码模板也可以作为自定义模式的一部分来使用,因此你就可以使用rational xde创建更加有扩展性的应用框架。实际上,rational xde 内部也使用了代码模板和模式的
能力来实现产品的其他各种能力。例如, getters and setters相关代码的产生,设计模式的实现等等,都用到了代码模板的能力。
端对端的场景
对于本文的简单应用我们已经函盖了设计和实现的具体细节,现在让我们把这些片断组合在一起。 接下来的两个时序图捕获了不同对象间端到端的交互,包括来自于两个模式实现的参与者。
图11展示了前端的活动:表单被提交到控制器,控制器获得helper bean并且要求它来处理外部的请求。

图 11:表单被提交并且被控制器处理
图12 是上一个时序图的继续。它显示了helper bean的各种初始化的动作,最终请求被转发给了负责格式化和显示计算结果的jsp页面,jsp页面将结果显示给最终用户。注意在获取被需要的ejb的过程中使用了服务定位器模式。

图12:helper bean执行处理过程并呈现结果