假设我有一个处理一些数据的类:
class SomeClass
{
public:
void SetData(IData*);
void ProcessData(void);
}
类需要在调用 ProcessData() 之前设置数据。我怎样才能强制执行这种依赖?如果在传入任何数据之前调用 ProcessData(),我可能会返回错误代码或抛出异常。抛出异常听起来怎么样?
附加信息 一些答案建议将 IData 传递给构造函数或 ProcessData()。这些都是合理的答案。我在这里不这样做的原因是因为这是 GUI 系统的一部分;用户可能会在任何时间点向SomeClass加载新数据并对其进行修改,因此在创建SomeClass期间,数据可能不可用。
(是的,我可以使用更好的设计来避免这个问题,但我的老板希望在屏幕上看到结果,而我必须在良好的设计和视觉效果之间做出妥协)。
最佳答案
使 SomeClass
构造函数需要 IData
并删除 SetData
。同样,您也可以将 IData
传递给 ProcessData
。
关于c++ - 如何处理必须按特定顺序调用的公共(public)函数的依赖项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1366401/