У меня есть класс интерфейса 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()
?