0

使用 Observer 与仅注册回调相比有哪些优缺点,例如:

worker.setOnJobIsDone(func);
4

1 回答 1

1

如果你使用函数指针,对象完全不知道它的用户;它只是调用一个允许更大灵活性的函数(用户不需要继承任何东西,您可以根据需要连接该对象的用户)。

观察者模式要求你定义一个接口。这不太灵活但更明确。

为了可读性,我更喜欢观察者模式;如果您以前从未见过代码,那么跟踪工作流程会容易得多。用于传递成员函数的 C++ 语法也有点难看。

于 2012-05-31T16:33:15.383 回答