这是共享(静态)类的良好候选者吗?

时间:2014-12-08 18:51:48

标签: vb.net class oop static

我正在创建一个包含Dictionary公共实例的缓存类。该类服务于整个应用程序,只能有一个全局实例,其生命周期与应用程序本身相同。

这个用例是否适合共享(静态)类?我知道对此有主观意见,但我希望尽可能客观的利弊。

1 个答案:

答案 0 :(得分:2)

是的,但是:

我绝不会公开披露这些词典。将它们隐藏在方法后面,以便您控制访问权限。如果应用程序是多线程的,则需要同步访问权限,或使用ConcurrentDictionary。字典本身不是线程安全的。

如果您打算将其用于缓存,请记住.NET中已有用于缓存的选项。也许你的班级应该封装其中一个?

在网络环境中:http://msdn.microsoft.com/en-us/library/system.web.caching.cache(v=vs.110).aspx 在非网络环境中:也许http://msdn.microsoft.com/en-us/library/system.runtime.caching.memorycache(v=vs.110).aspx