我开始学习Qt 4.5,并发现信号/槽机制很有帮助。然而,现在我发现自己正在考虑两种类型的架构。
这是我将要使用的一种。
class IDataBlock
{
public:
virtual void updateBlock(std::string& someData) = 0;
}
class Updater
{
private:
void updateData(IDataBlock &someblock)
{
....
someblock.updateBlock(data);
....
}
}
注意:为了简洁起见,代码已内嵌。
现在使用信号(signal)我可以:
void Updater::updateData()
{
...
emit updatedData(data);
}
这种写法更简洁,减少了接口的需求,但我仅仅因为能做到就应该这么做吗?第一个代码块需要更多的打字和更多的类,但它展示了一种关系。第二个代码块中,所有的东西都更加“无形”。哪一种更加理想,如果是逐案而定的话,有哪些指导方针呢?