C# の質問です。
次のような継承階層があります。
BaseController
Object1Controller
Object2Controller
Object3Controller
Object3_1Controller
オブジェクト 1 2 および 3 のインスタンスは、ベース コントローラの値を使用して値を計算しますが、オブジェクト 3_1 は計算しません。
これらのオブジェクトには、ベース値を一時的に変更し、キャッシュされた値に戻す他のオブジェクトを関連付けることができます。(この OO の悪夢の恐ろしい意味は無視してください :P )
私ができるようにしたいのは、次のようなものです。
class modifier<T>
T* pointerToValue
void assignModifiable(T*)
すべての変更可能なクラスが修飾子を作成し、変更したい変数を指すようにします。C++ に相当するものは次のようになります。
template <class T> class ModifierInterface
{
T* modifiableVariable;
void setModifier( T &target )
{ modifiableVariable = target }
void changeModifiable( T val )
{ modifiableVariable = val }
}