Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
使用 Observer 与仅注册回调相比有哪些优缺点,例如:
worker.setOnJobIsDone(func);
如果你使用函数指针,对象完全不知道它的用户;它只是调用一个允许更大灵活性的函数(用户不需要继承任何东西,您可以根据需要连接该对象的用户)。
观察者模式要求你定义一个接口。这不太灵活但更明确。
为了可读性,我更喜欢观察者模式;如果您以前从未见过代码,那么跟踪工作流程会容易得多。用于传递成员函数的 C++ 语法也有点难看。