赞
踩
1、什么是callback?
callback(回调)是一种在不更改实际代码的条件下更改为验证组件(例如driver,generator或monitor)行为的机制
class abc_transactor;virtual taskpre_send();endtaskvirtual taskpost_send();endtasktask xyz();this.pre_send();this.post_send();endtask : xyzendclass :abc_transactorclass my_abc_transactor extend abc_transactor;virtual taskpre_send();... //This function is implemented hereendtaskvirtual taskpost_send();... //This function is implemented hereendtaskendclass :my_abc_transactor
在上面的例子中,基类abc_transactor具有3个tasks,其中2个被声明为virtual task并且没有具体实现。另一个已完全实现xyz() task会调用这两个virtual task。
未实现的virtual task称为callback taskes(回调任务)。从基类abc_transactor扩展的子类my_abc_transactor将实现先前未实现的pre_send() task和post_send() task,无需更改xyz() task的代码。
通过这种方式,我们可以将可执行代码注入到函数xyz()task中,而无需对其进行修改。
例如你正在编写将被多个测试环境使用的基类,并且对于每个测试环境,基类中的某些task代码将发生变化,这时就可以将该task/function实现为callback method(回调方法)。</
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。