IOU设计模式介绍及应用 - 编程入门网
IOU设计模式介绍及应用时间:2011-06-29 IBM / 王忠平 何平原理 IOU 思想是人们在处理日常债务关系时行之有效的一种方法,即: 债务人通过可靠的第三方保管账户,向债权人发放 IOU 债务凭证; 债务人通过向第三方保管账户提交结果以终止 IOU 债务; 债权人凭此 IOU 债务凭证通过第三方保管账户履行债权并进行结果赎回。 债务人和债权人之间的债务关系,通过可靠的第三方保管账户,实现了在时间和空间上最大程度的分离和解耦。 IOU 设计模式是 IOU 思想在软件设计领域的应用,最早由 Allan Vermeulen 于 1996 年首次提出。在软件设计领域,债务关系发生在方法调用者和方法体之间,债务对象就是方法的返回结果。普通方法的调用模型是方法体同步执行然后返回结果,调用者必须等待结果返回后才能继续执行。在 IOU 设计模式下,方法体将立即返回一个 IOU 对象,并且承诺 IOU 对象最终一定会被终止,调用者在 IOU 对象被终止后可进行结果的赎回。在此期间,调用者无需等待就能够继续进行其它有价值的事务,从而达到了提高程序整体的并发性和异步性的目的。 IOU 设计模式完全不依赖于任何一种异步机制,IOU 对象的提供者可以选择任意有效的方式来执行服务并最终终止 IOU 对象,比如启用独立的线程/进程执行、驱动异步事件产生、通过远程方法调用或是等待用户终端输入等等。这是 IOU 模式具备普遍适用性的一个重要因素。 IOU 模式分析及实现 IOU 模式主要有 Iou(债务凭证)和 Escrow(第三方保管账户)两个对象,模式的实际使用时还会涉及 Caller(调用者)、Callee(被调用者)及 AsyncService(异步服务)等对象。 时序图 通过时序图,读者可以建立对 IOU 模式使用过程的初步印象。 图 1. IOU 模式时序图 IOU设计模式介绍及应用(2)时间:2011-06-29 IBM / 王忠平 何平IOU 接口定义 IOU 对象具备两种状态:一是未终止状态,意味着结果对象尚不可赎回;另一种是已终止状态,意味着结果对象可赎回。IOU 对象同时需支持四种基本操作: 支持对状态的查询操作; 支持等待操作直至其被终止; 支持对结果的赎回操作,若尚未终止则保持等待直至其被终止; 支持添加或删除回调对象的操作。 IOU 接口定义见清单 1。 清单 1. Iou 接口定义
Escrow 接口定义 Escrow 是第三方保管账户,它实际上扮演了一个桥梁作用。在债务关系建立初期,债务人通过 Escrow 向债权人发行 Iou;当债务关系结束时,债务人通过 Escrow 终止 Iou,并使其进入结果可赎回状态。如果债权人前期设置了回调对象,回调机制在 Iou 对象被终止时将立即执行债权人所提前设定的特定操作。Escrow 接口定义见清单 2。 清单 2. Escrow 接口定义
IOU设计模式介绍及应用(3)时间:2011-06-29 IBM / 王忠平 何平Callback 接口定义 IOU 模式中的回调机制主要是为了提供一种当 Iou 对象进入结果可赎回状态时能够立即执行某些回调动作的能力。每个回调对象都需实现 Callback 接口,并向感兴趣的 Iou 对象进行注册。每个 Iou 对象都会维护一个 Callback 对象列表,每个 Callback |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |