弱引用或工厂模式
本文关键字:模式 工厂 引用 | 更新日期: 2023-09-27 17:56:34
我在C#中读了一些关于弱引用类的内容,但我不确定它的用法。
我有一张巨大的桌子,有超过 10 或 20k 个条目。例如,当我编写一个列表DBFoos时,其中Foo是数据库中的对象。
如果用户只读并且该模式仅用于类之间的通信,因为下载对象需要一段时间,那么使用 Weakreference 而不是 Factory/Singelton 模式的优势在哪里?
编辑
我在MSDN上找到了一个示例
他们使用弱引用字典,例如:
public class Cache
{
// Dictionary to contain the cache.
public static Dictionary<int, WeakReference> _cache;
如果我在此缓存中使用列表设置我的对象,而不是使用辛格顿喜欢:
public class Foo{
private static Foo foo;
static Foo getreference(){
if(foo == null){
foo = new Foo();
return foo;
}
else
return foo;
}
}
是否有任何优势或缺点,例如GC使用弱引用进行收集,或者这只是一种复杂的保存方式?
弱引用是用来做缓存的,你把弱引用存储在缓存中,让垃圾回收器来做就是工作,所以有些时候你必须从数据库中重新加载一些元素。使用单例,它将制作静态缓存,该缓存不会被加装,但如果有足够的内存,它可以正常工作。
弱引用是否有实际用途?