vb.net - 这是共享(静态)类的好候选吗?

标签 vb.net class oop static

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

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

最佳答案

对,但是:

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

如果您打算将其用于缓存,请记住 .NET 中已经有用于缓存的选项。也许您的类(class)应该只封装其中之一?

在网络环境中: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

关于vb.net - 这是共享(静态)类的好候选吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27364848/

相关文章:

c++ - 关于 C++ OOP 数组成员复制行为

oop - 使用 extend() 和 include() 函数向类添加属性

SQL - 来自不在查询中的字符串的语法错误

android - 如何访问和引用全局类中的变量和函数

objective-c - 类名含义后的人字形语句

design-patterns - 您如何在领域驱动设计中使用具有工厂模式的接口(interface)?

vb.net - 处理从 dll 内部抛出的异常

c# - 更新多行就像批量插入一样

c# - 如何确定是否由于共享冲突而抛出 IOException?

c# - 由于继承是不可能的,有没有办法在静态类中重用代码?