如果我不允许使用Singleton模式,因为它不是很好的OOP,我有什么选择?我经常有很多需要快速访问的东西。如果我使用Singleton我被告知它不是很好的OOP,如果我引用这些东西,我会得到很多关于很多引用的类。
任何idéas?
答案 0 :(得分:5)
考虑使用Inversion of Control via Dependency Injection。这通常可以在人们接触单身人士的许多地方使用。
答案 1 :(得分:1)
“不好OOP”不是拒绝编码模式的好理由。 OOP对某些事物有好处,但绝大多数都不适用于所有事情。
我自己不是Singleton的忠实粉丝,但不是因为它“不是很好的OOP”,而是因为它有许多与全局变量相同的缺点,加上额外的对象gunk。不过,我必须更多地了解您的应用程序的结构,以提供有关使用内容的建议。
答案 2 :(得分:0)
您总是可以采用更加面向服务的方法并托管一个可以定义为Singleton的服务来处理多个呼叫者的各种工作项......
[ServiceBehavior(InstanceContextMode = InstanceContextMode.Single)]
public class MySingleton :
{
}