日期:2014-05-19  浏览次数:20697 次

这种情况应该使用类还是结构体还是全局dataset?
winform程序

程序中有多个物体(比如杯子),每个物体都有其对应的属性,比如大小,颜色,位置,初始时这些属性都存放在数据库中,   程序运行时需要多次调用到杯子的属性,某些属性可能被修改,比如位置.

以前都是从数据库中读取,后来发现物体的数量一旦变多,比如200个以上,访问速度明显下降,现在改用的是全局的dataset方式存放物体的属性,这种方式好不好?另外我一方面用timer不停的读这个dataset,另一方面可能随时修改这个dataset,如果读和改碰巧同时发生会不会出现问题?

因为它需要不停的修改,那么是不是不适用结构体?

如果用类,那么内存的消耗是不是比dataset大?与dataset相比有什么优劣?

------解决方案--------------------
为什么不用类
只要初始化的时候从DB读下数据好了
之后无论修改或获取都通过对象的属性来访问,
不需要及时更新DB
------解决方案--------------------
你可以把物体的所有的公共属性提出来,作为你个公共的基类,其他的每一个具体的物体都继承于这个基类,(具体的设计可以看一看设计模式,任何一本设计模式的书里都有)
至于用类或者用dataset,在你这个问题上我认为没有什么本质的区别,他们都是数据的载体,你可以根据自己的喜好使用,
所以,就你这个问题而言,不是数据的载体问题,而是数据的组织和结构设计的问题。
------解决方案--------------------
结构就不用想了,只适用于很小的对象

个人习惯用类解决
------解决方案--------------------
继续讨论...
------解决方案--------------------
回复人:KissApple(菊花普洱茶) ( 二级(初级)) 信誉:100 2007-06-20 12:25:24 得分:0
?
用类的话,实例化几百个类会不会很占内存?
-------------------------------
会比Dataset占的内存更少!
------解决方案--------------------
用类还是比较合适的!
------解决方案--------------------
回复人:KissApple(菊花普洱茶) ( 二级(初级)) 信誉:100 2007-06-20 13:58:07 得分:0
?
to wzd24(牧野)
为什么说用类比Dataset占的内存更少?
---------------------
DataSet需要保存更多的信息,所以占用内存更大!
------解决方案--------------------
学习..