У меня есть класс интерфейса Interface с чистыми виртуальными методами.
class Interface
{
public:
virtual void DoSomething() = 0;
}
Кроме того, существует класс Implementation, который реализует интерфейс.
class Implementation : public Interface
{
void DoSomething();
}
В моей программе мне нужно иметь Singleton (единственный экземпляр) пары Implementation/Interface. В программе много пар Implementation/Interface, но очень мало классов Implementation для одного класса Interface.
ВОПРОСЫ:
-
Должен ли я вызывать класс
InterfaceилиImplementationиз остальной части моей программы всякий раз, когда мне нужно использовать класс? Как именно я должен это делать?//Interface needs to know about Implementation Interface * module = Interface::Instance(); //No enforcement of Interface Implementation * module = Implementation::Instance(); //A programmer needs to remember Implementation and Interface names Interface * module = Implementation::Instance(); //May be there is some better way -
Как выглядит метод
Instance()?