我有这样一个接口类:
class MyInterface
{
public:
virtual void DoStuff() = 0;
virtual Result GetResult() = 0;
};
以及实现模板模式的简单抽象方法:
class Abstract: public MyInterface
{
public:
void DoStuff()
{
DoAFoo();
BakeAPie();
PrepareResult();
}
virtual DoAFoo() = 0;
virtual BakeAPie() = 0;
virtual PrepareResult() = 0;
};
我的问题来了。方法 GetResult() 应该由 Abstract 的每个具体实现来实现?会有很多这样的子类。
还是应该在 Abstract 类中处理?像这样:
class Abstract: public MyInterface
{
public:
....
GetResult()
{
return m_result;
}
private:
Result m_result;
}
但是我如何确保 Abstract 子类将在 PrepareResult() 中填充 m_result?