Я провожу некоторые исследования о том, как реализовать схему обработки событий в C ++, которая может быть проще всего, так как она реализует adpter для класса в Java. Проблема состоит в том, что при подходе, показанном ниже, мне нужно, чтобы все адаптеры уже были реализованы с переопределением его функции в devived классе (потому что это нужно компоновщику). С другой стороны, использование стратегии делегата, в которой я могу использовать адаптер только в производном классе, должно означать меньшую производительность с учетом способа его реализации.
какой из них или какой еще должен быть лучший подход к нему?
class KeyboardAdapter
{
public:
virtual void onKeyDown(int key) = 0;
}
class Controller : public KeyApadter
{
private:
void onKeyDown(int key);
}
void Controller::onKeyDown(int key) {}
class UserController : public Controller {
private:
void onKeyDown(int key);
}
void UserController::onKeyDown(int key) {
// do stuff
}
int main() {
UserController * uc = new UserController();
Controller * c = uc;
c->_onKeyDown(27);
}