#ifndef CONTROLLER_H #define CONTROLLER_H #include "component/Component.h" class Controller { public: Controller(); virtual ~Controller(); void setComponent(Component* component); virtual void clear() = 0; protected: template ViewType* getView() const; private: Component* m_component; }; template ViewType* Controller::getView() const { if (m_component) { return m_component->getView(); } return nullptr; } #endif // CONTROLLER_H