【问题标题】:singleton patterns VS static types [duplicate]单例模式VS静态类型[重复]
【发布时间】:2010-01-24 17:05:24
【问题描述】:

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

通常,每次我需要一个系统范围的对象时,我都会使用单例模式。 M 的问题是,为什么我不应该将对象实现为静态并自然地获得单个对象的行为?使用静态类型而不是单例分解对象有什么缺点吗?

【问题讨论】:

标签: static singleton


【解决方案1】:

静态类型的可测试性要少得多(单元)。 单例可以传递(作为参数)和继承。

例子等请看这篇文章:

http://dotnetperls.com/singleton-static

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

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2011-08-30
      • 1970-01-01
      • 1970-01-01
      • 2013-08-19
      • 1970-01-01
      • 2011-02-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多