如果我不被允许使用Singleton模式,有哪些选择?

时间:2010-10-12 21:20:13

标签: design-patterns singleton reference

  

可能重复:
  What's Alternative to Singleton

如果我不允许使用Singleton模式,因为它不是很好的OOP,我有什么选择?我经常有很多需要快速访问的东西。如果我使用Singleton我被告知它不是很好的OOP,如果我引用这些东西,我会得到很多关于很多引用的类。

任何idéas?

3 个答案:

答案 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 : 
{
}