【问题标题】:Using a single instantation throughout an entire project在整个项目中使用单个实例
【发布时间】:2018-03-09 14:47:17
【问题描述】:

我有一个非常基本的问题,但仍然是一个问题。

在我的游戏课中

public Game()
{
  PopulateGameTitles();
  PopulateGameReleaseDates();
}

我想确保这个对象在我的项目中只创建一次。所以基本上,创建一个 new Game() 不会实例化一个新的,而是引用单独的实例化。

我怀疑我会将它设为 Singleton,但我很好奇当我在基本构造函数中进行计算时如何实现它。

【问题讨论】:

  • 你有没有想过让它static
  • 我将不得不重新编写所有方法/属性以反映这一点。这是唯一的方法吗?
  • 当然不是唯一的方法,我只是想确保您至少考虑过。
  • 所以是的,我不能走静态路线,至少我不这么认为。我想探索其他方式。
  • 令人惊讶的是,您的问题已经在您为此问题选择的标签中得到解答:使用单例模式

标签: c# oop singleton


【解决方案1】:

按照您描述问题的方式,您肯定想要一个单例。不过,您不会使用new Game() 来访问它。 Jon Skeet 有一个出色的 article 关于单例,以及如何实现它们。
但是,我鼓励您在组织程序时考虑其他选择。单例是危险的,因为它们代表共享状态,其中相隔很远的程序部分可能会通过与此单例交互而无意中相互影响。您可能想弄清楚您是否真的需要在任何地方共享这些数据,或者是否有其他方法可以通过您的程序分发这些数据。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多