|
楼主 |
发表于 2020-7-8 15:45:01
|
显示全部楼层
to:sky_hexia
我是图省事没每一个都写,CDevice是指CDevice1 CDevice2 CDevice3每个实现方式均和它一个样子,
void CDevice::Regist(IDevice1* pDev1)
void CDevice::ThreadCallBack()
实际上是:
void CDevice1::Regist(..){...}
void CDevice1::ThreadCallBack(){..}
void CDevice2::Regist(..){...}
...
to:koby806
呵呵,其实简单点说就是:外围有很多不同类型的设备,要和一个中心枢纽模块交互,怎么设计能
使得结构松散,简洁,高效.
呵呵,这是个蛮有挑战性的问题,松散未必简洁,就像每个设备定义一个接口,CWhat继承这些接口,再定义多个设备接口让设备继承(这样实现交互调用)一样.(一个公共接口是行不通的,先是语意不通,再者方法参数也不同).
to:druboy
如果CDeviceMgr是Proxy这种角色的话,那么它将变的非常庞大(可以想像实现10多个类型的各个功能函数..);
如果用成员方式,在与CWhat交互时,还是免不了上面图的情形. :(
其实我这么考虑的目的有两个:
1.当某类设备硬件更新时,我能很容易的把CDeviceX替换掉,而不需修正系统的其他模块(即松散藕合)
2.CWhat这个心脏级的控制核心要在松散的基础上保持简洁,不要复杂.
|
|