博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
UVM:9.1.3 UVN 中callback 机制的原理
阅读量:4222 次
发布时间:2019-05-26

本文共 463 字,大约阅读时间需要 1 分钟。

1.如下的 callback:

1)假设这是一个城市的VIP 的driver,pre_tran 应该是my_driver 的一个函数,要callback pre_tran。factory可以,但这里不考虑。

2.新引入一个类:

1)可以避免重新定义一次my_driver,只需要重新定义A的pre_tran。重新派生A 的代价远小于my_driver。

3.使用的时候,只要从A 派生一个类并将其例化,然后重新定义pre_tran 函数,callback 目的就达到了。

1)但却忽略了一点。my_driver 怎么知道A 派生了一个类,并且例化呢?

2)所以,UVM 又引入一个新的类,假设称为A_pool,专门存放A 或者A的派生类的一个池子。UVM 会执行这个池子中所有实例的pre_tran 函数,即:

3)使用的时候,从A 派生一个类并将其例化,然后加入到A_pool中,上述foreach 就会知道加入了一个实例,并调用其pre_tran。

4)UVM 中的callback 机制与此类似,不过其代码实现非常复杂。

你可能感兴趣的文章
cocos2dx android启动错误
查看>>
eclipse: android rename package name
查看>>
cocos2dx c++调用java思想
查看>>
cocos2dx lua Node节点 私有数据存取
查看>>
lua math.ceil math.ceil
查看>>
cocos2dx CCNode计算node的大小
查看>>
cocos2dx 布局记录(1)
查看>>
lua 多行注释和取消多行注释
查看>>
缩放系数计算
查看>>
cocos2dx --- 按钮点击居中放大
查看>>
cocos2dx menu位置计算
查看>>
cocos2dx资源加载机制(同步/异步)
查看>>
cocos2dx C++调用java -- 字符串传递
查看>>
git学习网站
查看>>
JavaScript 学习网站
查看>>
cocos2dx java调用c++ -- 字符串传递
查看>>
CCScaleTo与CCScaleBy比较
查看>>
cocos2dx CCObject引用计数,内存释放分析(1)
查看>>
cocos2dx2.X 编译时,传递编译选项
查看>>
ccCArray.cpp 文件
查看>>