假设我有以下 C++ 代码
class ControlAlgorithm {
public:
virtual void update() = 0;
virtual void enable() = 0;
virtual void disable() = 0;
};
class Algorithm_A : public ControlAlgorithm {
public:
void update();
void enable();
void disable();
};
class Algorithm_B : public ControlAlgorithm {
public:
void update();
void enable();
void disable();
};
Algorithm_A algorithm_A;
Algorithm_B algorithm_B;
ControlAlgorithm *algorithm;
假设我想根据一些外部事件在运行时algorithm_A
和运行时之间切换algorithm_B
(基本上我将实现状态设计模式)。所以algorithm
指针指向algorithm_A
或algorithm_B
对象。我的问题是是否有任何方法可以实现在运行时动态切换算法的能力,而无需公共接口中的虚拟方法,例如奇怪的重复模板模式?