我有 3 个接口类IVideo , IAudio , IGPIO
和其他三个将实现这些接口的类:Video_impl , Audio_impl , GPIO_impl
.
到目前为止,事情很简单。
但是,我希望所有这些对象都是单例的。以下是问题:
抽象一个 Interface 是个好主意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;
};