弱引用或工厂模式

本文关键字:模式 工厂 引用 | 更新日期: 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使用弱引用进行收集,或者这只是一种复杂的保存方式?

弱引用或工厂模式

弱引用是用来做缓存的,你把弱引用存储在缓存中,让垃圾回收器来做就是工作,所以有些时候你必须从数据库中重新加载一些元素。使用单例,它将制作静态缓存,该缓存不会被加装,但如果有足够的内存,它可以正常工作。

弱引用是否有实际用途?