关于万能动态数据组件设计的思考

C++语言 码拜 9年前 (2016-05-13) 918次浏览
    最近在做一个信息管理系统的数据组件模块,有了一些小思考。大家都知道,在c++总会有各种类型的数据,有值也有指针,样式繁多,相互之间转换特别麻烦,在boost中的any类实现了任意数据的存取,但对数据的操作封装得不够,例如一个图片类的数据怎么样转换等等。本质来看,任何数据不过是一块内存片或多块内存片的集合,所以还是有可能找到在c++中实现一种数据,代替多种现有数据的方式的。例如要实现一个数据变化了,达到某个条件就触发某个行为,在实现上又该怎么样。感觉,把数据的存取用any类来实现对外提供IData接口,操作数据的存取。把数据的操作,例如各种运算,封装到IOperator接口,管理某一个类型数据可进行的各种操作运算IOperatorUnit。数据类型的定义直接用IDataType来实现。整个数据组件,只提供IData接口给用户使用,通过此接口可以得到内部唯一的全局接口IDataTypeManager和IDataOperatorManager接口。使用时用户可以自定义实现了IDataType和IDataOperator接口的数据注册到管理器,然后很方便的就可调用IData操作各种数据。感觉这样的设计,有点复杂了,编码量还不小,有没没有谁能点拨下,不胜感激!
解决方案

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明关于万能动态数据组件设计的思考
喜欢 (0)
[1034331897@qq.com]
分享 (0)