Je possède 3 classes d'interface IVideo , IAudio , IGPIO
et trois autres classes qui implémenteront ces interfaces : Video_impl , Audio_impl , GPIO_impl
.
Jusque-là, tout est simple.
Mais ensuite, je veux que tous ces objets soient des singletons. Voici les questions :
Est-ce une bonne idée d'abstraire une Interface ISingleton
, de sorte que Video_impl , Audio_impl , GPIO_impl
(ou IVideo , IAudio , IGPIO
?) peuvent en hériter ?
Je pensais l'implémenter de la manière suivante. Est-ce recommandé ? Je pense qu'il doit y avoir de meilleures façons.
//Isingleton.hpp
template
class ISingleton
{
public:
virtual T *getInstance() = 0;
};
class IGPIO
{
public:
virtual int SelectAudioInput() = 0;
};
class GPIO_impl : public IGPIO, public ISingleton
{
public:
IGPIO *getInstance();
int SelectAudioInput() ;
private:
IGPIO *instance;
};