如何基于配置实现运行时切换功能

时间:2017-08-16 10:35:04

标签: c++ configuration arduino esp8266

我正在尝试实现我认为使用C ++进行功能切换的功能。

上下文

这是针对使用PlatformIO开发的Arduino / ESP8266项目

期望的情景

用户禁用配置中的无线电通信。 ESP8266自行复位,读取新的配置文件并禁用无线电通信模块。

问题

很容易不实例化Radio类,但我不希望在应用程序中有深入的条件来检查Radio类是否被实例化。

问题

如何避免应用程序深层的功能切换条件?

代码示例

// FMV.cpp
void FMV::setup() {
    this->connectionManager = new ConnectionManager(configController);
    this->connectionManager->setup();
}

// ConnectionManager.cpp
void ConnectionManager::setup()
{
    if (config.enableRadio)
    {
        this->radio = new Radio();
        this->radio->setup();
        delay(100);
    }
}

// FMV.cpp
void FMV::loop()
{
    // code

    // HOW TO AVOID THIS?
    if (this->connectionManager->radio != nullptr)
    {
        this->connectionManager->readRadioMessages();
    }

    // code 
}

0 个答案:

没有答案