首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

如果一个程序有多个数据来源,应该如何设计

2012-03-07 
如果一个程序有多个数据来源,应该怎么设计?程序的数据可能来自XML文件,自定义文件,网络,串口等地方。应该怎

如果一个程序有多个数据来源,应该怎么设计?
程序的数据可能来自XML文件,自定义文件,网络,串口等地方。应该怎么设计结构?
他们各自有各自的协议,各自又有各自的通信方式。

应该把通信类继承自一个通信接口吗?这个好像是需要的。但是和协议解析类的关系又应该是怎么样?

还有,各自解析出来的数据应该放在一个结构里还是分别放,这个还没想好。希望能提供一种好的设计。







[解决办法]
解析基类必需有,提供解析数据方法。数据基类必需有,提供数据接受方法与输送解析的方法。另外需要一个数据分发类,根据数据类型选择不同的数据类接受数据,并且存储交由对应解析类处理。 解析类和数据基类可以合并,看是否一个数据有多种解析法。
[解决办法]
如果涉及多线程,需要增加工厂类外加哈希表作解析类对象和数据类对象的构造。
[解决办法]
我觉得,这里使用函数指针数组可能还会好一些。虽然能够保证解析后的数据格式一致,但事实上每个处理数据来源的函数都是不相同的,且可能需要正对不同情况调用不同函数。我个人觉得使用虚函数可能有点累赘,这里反而不如直接使用函数指针数组灵活。
[解决办法]
看看设计模式的bridge 模式和 builder模式.我觉得应该对你有帮助.

对于楼主面临的问题,请记住,针对接口编程,而不是针对实现.希望你能体会.

热点排行