我有幾個專門的類。例如容器模式與專門的兒童
class Transition_Matrix : public Transition
{
SetMatrix(Matrix* pStartMatrix);
};
class Transition_Vector : public Transition
{
SetVector(Vector* pStartVector);
}
class Transition_Container : public Transition
{
}
我想在Animate_Container做呼叫SetVector()或SetMatrix(),而不聲明功能需要被設定對象的每種類型。例如,我不想申報Animate_Container如下...
class Transition_Container : public Transition
{
SetMatrix(Matrix* pStartMatrix);//loops through all children calling SetMatrix
SetVector(Vector* pStartVector);//loops through all children calling SetVector
}
我不想Animate_Container知道它有哪些兒童。但我希望在容器上調用這些函數的方便性,所以我不必通過孩子搜索並找出在「過渡」矩陣或向量時應調用哪些函數。
我應該在這裏使用什麼正確的模式?
基本上我想在根容器上設置一個矩陣或向量,並讓它傳播給每個可能想要使用它的孩子。
想法?
是的,這是一個很好的答案,這是我以前實施它的方式。但是,我想知道是否有辦法做到這一點,以便Transition類不需要了解Matrix或Vector。 –
_你爲什麼不想'過渡'知道'矩陣'和'矢量'? –
@DannyDiaz我已經更新了我的答案,包括一個使用'boost :: any'的例子 –