我正在寻找一种满足以下要求的设计:
有一个具有以下接口的公共可见对象:
class Whatever
{
Whatever& GetIntstance();
void UpdateData1(POD d1); // POD: Plain old datatype
void UpdateData2(POD d2);
// ...
void UpdateDataN(POD dN);
bool Question1();
bool Question2();
// ...
bool QuestionM();
}
void UpdateDataX(POD dX) (1 <= X <= N)
设置内部状态的地方。
bool QuestionY() (1 <= Y <= M)
的是/否问题是根据内部状态计算得出的。
假定委托的树结构(DAG结构或其他结构)在构造后是固定的。
答案 0 :(得分:1)
解决此问题的典型方法是:
Whatever
进行构造),每个对象都会传递给模型对象,以及它依赖的其他任何委托(或其他任何东西)(构造函数依赖项注入)由于您使用的是C ++,因此强调您应该使用RAII也很重要。由于对象之间存在所有生命周期关系,因此您可能会坚持使用shared_ptr
进行模型和委托。