次の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
オブジェクトのいずれかを指します。私の質問は、実行時にアルゴリズムを動的に切り替える機能を実現する方法があるかどうかです。たとえば、奇妙な繰り返しのテンプレート パターンなど、共通のインターフェイスで仮想メソッドを使用する必要はありません。