单例模式VS静态类型

时间:2010-01-24 17:05:24

标签: static singleton

  

可能重复:
  Advantage of Static class over use of Singleton

通常,每当我需要一个系统范围的对象时,我就使用了单例模式。 问题是,为什么我不应该将对象实现为静态并自然地获得单个对象行为?在单例因子对象上使用静态类型是否有任何缺点?

2 个答案:

答案 0 :(得分:0)

静态类型是可测试的(单元)少得多。 单身人士可以传递(作为参数)并继承。

有关示例等,请参阅此文:

http://dotnetperls.com/singleton-static

通常,您应该避免使用系统范围的对象,因为这些对象表明您具有全局状态。 Singleton用于管理对共享资源(而不是状态)的访问。

我相信至少有一个GoF记录在案,说在他们的书中包含单身人士是一个错误,在许多情况下它被用作反模式。

答案 1 :(得分:0)

取决于您想要对象做什么。如果它只是在它上面调用方法,那么只需使用静态。如果你想传递对象,并用它做面向对象的东西,即多态,那么就用对象的方式来做。