(C13)Tapestry IoC:Service Builders Strategy Pattern

本人翻译目的是用来学习Tapestry5的,共享出来希望大家批评指正。计划持续翻译。
chinajavawolf  

策略模式

另一个四人帮(Gang Of Four)模式,策略模式作为Tapestry IoC内的实现是一种后期约束。

这个概念是适配器为对象基于一个对象的真实类型被访问。这些适配器支持附加的功能。这个适配器使用一个StrategyRegistry被加载。

适配器的查找基于一个继承查找;因此提供一个适配器给java.util.Map类型将匹配任何实现了Map接口的对象。这个继承查找工作在类层次结构上查找一个匹配注册。如果没找到什么,那么所有的接口直接或间接通过选择的类的实现被检查。Java.lang.Object总是最终的匹配。

如果没有匹配被找到,一个运行时异常被抛出。

作为一个特例,null值被查找作为一个类的void实例。

StrategyBuilder服务创建一个服务实现围绕一个策略注册。

  1. public interface StrategyBuilder{   
  2.   
  3. S build(StrategyRegistry registry);   
  4.   
  5. }   
  6.   

对于一个给定的接口(并且匹配StrategyRegistry),一个服务实现被创建。这个服务接口被从策略注册中确定。

每个模块的第一个参数是一个选择器。他的类型被用来定位一个适配器。

相应的适配器方法随后被调用,传递所有参数。

这个服务接口的每个方法应该接受至少一个参数。通常,这样的接口有一个或两个方法。

例如:
你通常有一个服务配置为定义的适配器注册。

你转换这个配置给StrategyRegistry,然后使用它构建这个最终服务:

  1. public static MyStrategyService build(Map configuration,   
  2.   @InjectService("StrategyBuilder")   
  3.   StrategyBuilder builder)   
  4. {   
  5.    StategyRegistry registry = StrategyRegistry.newInstance(MyStrategyService.class, configuration);   
  6.   
  7.    return builder.build(registry);   
  8. }  


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值