|

楼主 |
发表于 2020-7-10 16:15:01
|
显示全部楼层
to:huanwu
呵呵,这种方法实现的是"单向"交互: 即,device调用CWhat.当然在OnEvent1中,能返回去掉device1,
但仅限制在OnEvent1()中, 当CWhat内部时钟触发轮询,要向device要数据时,这种方法就不足了.
这就要在CWhat内部保留一份引用表,时钟一触发就回调各个设备. "双向"就是指这个意思.
但我不很情愿用 "引用表",因为回调每个设备的内容不同,可能device1要调用它的:位置,然后再调用它的速度,最后再取它的状态.而CWhat在调用期间可能要穿插其他的操作来配合device1的返回结果.
所以这种情况决定了无法对所有设备抽出一个IDeviceFace这样的接口,无法实现! 呵呵,也就是说
"引用表"并非是list<> vector<>之类的东西,而是一个个IDevice1* _dev1; IDevice2* _dev2;...
之类的东西.
想像以下,那么多的设备,CWhat中存在那么多的接口指针...,唉,这就是俺"很不情愿"的原因了. |
|