IOU设计模式介绍及应用 - 编程入门网
proxy, Method method, Object[] args) throws Throwable
{
Object obj;
if( method.getDeclaringClass() == Iou.class )
{
// 如果方法来自于 Iou 类声明,则将本 IOU 对象设为反射执行的目标对象
obj = this;
}
else
{
// 调用非 Iou 类的方法,检查此 IOU 对象是否已经终止,未终止则保持等待直至终止
if( !this.closed() )
{
this.standBy();
}
// 赎回结果对象,并设为反射执行的目标对象
obj = this.redeem();
}
// 在目标对象上执行 invoke 调用
return method.invoke(obj, args);
}
}
IOU设计模式介绍及应用(6)时间:2011-06-29 IBM / 王忠平 何平扩展 IOU 模式带来了更好的用户体验,在使用方法上也有所改进。清单 5 和清单 6 改进后的实现分别是清单 8 和清单 9。 清单 8. 被调方法的实现模型(改进后)
清单 9. 调用者的实现模型(改进后)
实例演示 接下来通过一个实例来演示 IOU 设计模式的实际应用,例子描述了一位女管家如何通过 IOU 模式来更加有效地处理家务的故事。 涉及的接口有:顶层接口 Processable 及其子接口 Clothes 和 Food。Processable 接口声明了 process 方法,子接口 Food 声明了 addSpice 方法。Clothes 经过清洗(process)变得干净;Food 经过烹饪(process)变得可食用,而且 Food 还能够添加调味香料(addSpice)。具体实现类为 ChothesImpl 和 FoodImpl。 涉及的异步服务类是 AsyncService,它以异步方式处理 Processable 对象并调用其 process 方法,并且最后会终止 Escrow 对象以结束 Iou 债务。实例中的 AsyncService 是以后台线程为载体,但是实际应用中用户可以选择任意的异步机制。 IOU设计模式介绍及应用(7)时间:2011-06-29 IBM / 王忠平 何平最后的女管家类是 HouseKeeper。她需要进行的家务包括洗衣、做饭及其他,其中可以并行执行是洗衣和做饭,因为有洗衣机和电饭煲可以帮忙,剩下的则必须一件一件地进行。具体实现见清单 10。 清单 10. HouseKeeper 类
|
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |