原创作者: chinajavawolf
阅读:1289次
评论:0条
更新时间:2011-05-26
本人翻译目的是用来学习Tapestry5的,共享出来希望大家批评指正。计划持续翻译。

策略模式
另一个四人帮(Gang Of Four)模式,策略模式作为Tapestry IoC内的实现是一种后期约束。
这个概念是适配器为对象基于一个对象的真实类型被访问。这些适配器支持附加的功能。这个适配器使用一个StrategyRegistry被加载。
适配器的查找基于一个继承查找;因此提供一个适配器给java.util.Map类型将匹配任何实现了Map接口的对象。这个继承查找工作在类层次结构上查找一个匹配注册。如果没找到什么,那么所有的接口直接或间接通过选择的类的实现被检查。Java.lang.Object总是最终的匹配。
如果没有匹配被找到,一个运行时异常被抛出。
作为一个特例,null值被查找作为一个类的void实例。
StrategyBuilder服务创建一个服务实现围绕一个策略注册。
- public interface StrategyBuilder{
- S build(StrategyRegistry registry);
- }
对于一个给定的接口(并且匹配StrategyRegistry),一个服务实现被创建。这个服务接口被从策略注册中确定。
每个模块的第一个参数是一个选择器。他的类型被用来定位一个适配器。
相应的适配器方法随后被调用,传递所有参数。
这个服务接口的每个方法应该接受至少一个参数。通常,这样的接口有一个或两个方法。
例如:
你通常有一个服务配置为定义的适配器注册。
你转换这个配置给StrategyRegistry,然后使用它构建这个最终服务:
- public static MyStrategyService build(Map configuration,
- @InjectService("StrategyBuilder")
- StrategyBuilder builder)
- {
- StategyRegistry registry = StrategyRegistry.newInstance(MyStrategyService.class, configuration);
- return builder.build(registry);
- }
评论 共 0 条 请登录后发表评论