我正在创建一个包含Dictionary的公共实例的缓存类.该类服务于整个应用程序,只能有一个全局实例,其生命周期与应用程序本身相同.
这个用例是共享(静态)类的一个很好的候选者吗?我知道对此有主观意见但我希望尽可能客观的利弊.
最佳答案 对,但是:
我绝不会公开揭露这些词典.将它们隐藏在方法后面,以便您控制访问权限.如果应用程序是多线程的,则需要同步访问权限,或使用ConcurrentDictionary.字典本身不是线程安全的.
如果您打算将其用于缓存,请记住.NET中已存在用于缓存的选项.也许你的班级应该封装其中一个?
在Web上下文中: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