直接喷射,工厂模式,单例模式

Direct Injection, Factory Pattern, Singleton Pattern

我的程序有一个窗口,用于绘制模型(类)。运行时的许多其他类(对象)将使用这两个类。因此,我需要参考他们。到目前为止,我只在主GUI类中保留了两个指针作为成员变量,但现在我想使用更好的策略。单例模式似乎是理想的,但许多人说最好不要使用。替代方案似乎是直接注入(我认为这不适合我的情况)或其他模式,如工厂模式。但是工厂模式创建了一些东西,不保留对创建的东西的引用,或者我错了吗?是否还有其他模式可以帮助我拥有某种全局容器来保存对许多其他对象将使用的对象的引用?


我不确定您是否需要更改参考资料的保存方式。主GUI类跟踪作为应用程序一部分创建的内容,这是完全合理的。

使用singleton基本上意味着"创建一些其他对象,而不是跟踪创建哪些对象的主GUI类"。现在,对象不再询问GUI类,而是询问singleton。如果他们已经询问了GUI类,那么它与单例实现相同的目的。

因此,如果您的代码如下所示:

1
2
3
object.myMethod {
<...>
  draw(mainGuiClass.textWindow, bla, bla, bla);

…并且textWindow是静态的,您可能已经将mainguiclass用作单例。

如果发生的情况是调用方法与此对象类似。某些方法(maingui.textwindow、bla、bla、bla)或您的对象是通过引用mainguiclass或mainguiclass.textwindow创建的,则您正在使用某种注入。

这有帮助吗?


如果您希望窗口和模型是单实例的,请使用单音。我理解得对吗?你想一次就得到?