gpt4 book ai didi

c++ - 这种 C++ 单例模式和方法公开是一种好的做法吗?

转载 作者:太空宇宙 更新时间:2023-11-04 11:29:14 25 4
gpt4 key购买 nike

我想要一个单例类并公开公开它的一些方法,这些方法直接在实例上工作。下面的代码是一个好的模式吗?

class Singleton
{
public:
static Singleton& get()
{
// the easiest way to implement a singleton class

static Singleton instance;

return instance;
}

static void publicMethodOne()
{
// "redirecting" the call to the instance itself

get().instancePublicMethodOne();
}

static void publicMethodTwo()
{
// "redirecting" the call to the instance itself

get().instancePublicMethodTwo();
}

private:
Singleton() {}
Singleton(const Singleton& s) {}
Singleton& operator=(const Singleton& s) {}

void instancePublicMethodOne()
{
// do stuff
}

void instancePublicMethodTwo()
{
// do stuff
}

void privateMethodOne()
{
// privately do stuff
}
};


// call from outside
Singleton::publicMethodOne();

这基本上将每个静态和公共(public)方法调用重定向到实例,每个静态和公共(public)方法在实例中都有一对方法。

编辑:我想使用单例模式,这是肯定的。我的问题是这种全局公开实例方法的模式是否好。

最佳答案

自己比较一下这两个调用:

Singleton::publicMethodOne();
Singleton::get().publicMethodOne();

您只需将对 Singleton::get 的调用放入此静态方法中。这样做意义不大。它只会膨胀代码。

关于c++ - 这种 C++ 单例模式和方法公开是一种好的做法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25465093/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com