在execute() Startup SimpleCommand中显示"Hello Startup“的最简单的CMakeLists.txt、main.cpp和PureMVC sources示例是什么?
PureMVC源码是here
理想的解决方案可以是github项目的链接。
发布于 2014-07-28 17:16:30
您应该编译相应的dll和lib (调试或发布静态|共享),包括PureMVC文件。也许你可以从PureMVC::Patterns::Facade派生一个外观,覆盖必要的虚函数。因为在C++和类Java编程语言之间是不同的,所以被覆盖的initializeController()不会在基类的构造函数中被调用!下面是一个派生示例:
class ApplicationFacade
: public virtual IFacade
, public Facade
{
friend class Facade;
public:
static const string STARTUP;
static const string EXIT;
protected:
ApplicationFacade(void)
: Facade(this, "ApplicationFacade")
{
initializeController();
}
public:
static ApplicationFacade& getInstance(void)
{
if (Facade::hasCore("ApplicationFacade"))
return *(dynamic_cast<ApplicationFacade*>(&Facade::getInstance("ApplicationFacade")));
return *(new ApplicationFacade());
}
protected:
virtual void initializeNotifier(string const& key)
{
Facade::initializeNotifier(key);
}
virtual void initializeFacade()
{
Facade::initializeFacade();
}
virtual void initializeController(void)
{
Facade::initializeController();
StartupCommand* startupCommand = new StartupCommand();
registerCommand(STARTUP, startupCommand);
ExitCommand* exitCommand = new ExitCommand();
registerCommand(EXIT, exitCommand);
}
~ApplicationFacade()
{
}
};
const string ApplicationFacade::STARTUP = "startup";
const string ApplicationFacade::EXIT = "exit";StartupCommand和ExitCommand派生自PureMVC::Patterns::SimpleCommand,然后在main.cpp中,您可以通过以下方式启动程序:
ApplicationFacade& facade = ApplicationFacade::getInstance();
facade.sendNotification(ApplicationFacade::STARTUP);并退出:
facade.sendNotification(ApplicationFacade::EXIT);https://stackoverflow.com/questions/24381250
复制相似问题