【发布时间】:2010-12-01 00:48:13
【问题描述】:
我有 3 个接口类 IVideo , IAudio , IGPIO 和其他三个将实现这些接口的类:Video_impl , Audio_impl , GPIO_impl。
到目前为止一切都很简单。
但是,我希望所有这些对象都是singleton。以下是问题:
抽象一个接口 ISingleton 是个好主意,以便 Video_impl , Audio_impl , GPIO_impl (或 IVideo , IAudio , IGPIO ?)可以继承它?
我正在考虑以下列方式实现它。推荐吗?我认为必须有更好的方法。
//Isingleton.hpp
template <class T>
class ISingleton
{
public:
virtual T *getInstance() = 0;
};
class IGPIO
{
public:
virtual int SelectAudioInput() = 0;
};
class GPIO_impl : public IGPIO, public ISingleton<IGPIO>
{
public:
IGPIO *getInstance();
int SelectAudioInput() ;
private:
IGPIO *instance;
};
【问题讨论】:
-
看起来更像 C++ 而不是 C# ...
-
谢谢,Stefan。它是 C++。
标签: c++ design-patterns singleton multiple-inheritance