单身人士模式 - 这是更好的做法?

Sam*_*uel 0 singleton design-patterns

我有一个单身人士,我在争论是否有一些静态方法可以隐藏单身人士对客户端的使用是不好的做法.例如:

Singleton::Instance()->Foo();
Run Code Online (Sandbox Code Playgroud)

比.

Singleton::FooHelper();
Run Code Online (Sandbox Code Playgroud)

定义FooHelper的地方:

class Singleton
{
    ...

    static void FooHelper()
    {
        Singleton::Instance()->Foo();
    }
    ...
}
Run Code Online (Sandbox Code Playgroud)

第二种解决方案被认为是不良做法吗 我不会为Singleton的所有方法创建辅助函数,只是客户端代码经常使用的方法.

T.E*_*.D. 7

一个想法是完全摆脱单身人士.在系统中使用适当的所有者使其成为一个合适的类,其他类必须去获取该对象.然后,您可以像"普通"对象一样访问它,它看起来不会那么刺耳.

许多人认为单身人士是一种反模式.我发现他们遇到的一个大问题是当你发现有一天需要时,他们会很难概括你的代码.随着计算机变得更快并获得更多内核,我工作的地方现在发现自己希望能够同时在同一台机器上运行多个主程序.这样做的最大挑战是我们愚蠢编码的所有单身人士.

尝试不用单身一次这样做,看看它是如何为你工作的.

  • 对于尝试删除单身人士的明智建议+1. (2认同)