弱引用或工厂模式

SeeuD1

我读了一些有关C#中的Weakreference类的信息,但是我不确定它的用法。

我有一个巨大的桌子,上面有10多个或2万个条目。例如,当我编写一个List DBFoos时,其中Foo是数据库中的对象。

如果用户确实是只读的并且该模式仅用于类之间的通信,那么使用Weakreference而不是Factory / Singelton模式的优势在哪里,因为对象的下载需要花费一些时间?

编辑

我在MSDN上找到了一个例子

他们使用弱引用字典,例如:

public class Cache
{
    // Dictionary to contain the cache.
    public static Dictionary<int, WeakReference> _cache;

如果我在此缓存中使用列表设置了对象,而不是使用像Singelton这样的对象:

public class Foo{
private static Foo foo;
static Foo getreference(){

if(foo == null){
 foo = new Foo();
 return foo;
} 
else 
 return foo;
}
}

是否有任何优点或缺点,例如使用Weakreference通过GC进行收集,还是仅是一种复杂的保存方式?

索林克先生

Weakreference用于创建缓存,您将弱引用存储在缓存中以使垃圾收集器能够正常工作,因此有时您必须从数据库中重新加载某些元素。使用Singleton,它将创建不会被浪费的静态缓存,但是如果有足够的内存,它将可以正常工作。

弱引用有实际用途吗?

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章