我使用公司不同组提供的第三方库(用 C++ 编写)遇到了这个问题。
在 Observer 的析构函数中,它将自己与其订阅的所有可观察对象分离,这部分对我来说很有意义。但是在 Observable 的析构函数中,它会检查 observable 是否有任何观察者仍在其订阅者列表中。如果是这样,则引发错误。
我将把它故意在析构函数中抛出错误的事实放在一边。有人可以尝试向我解释为什么 observable 不应该期望观察者能够活得更久,或者这只是一个糟糕的设计。如果这是一个糟糕的设计,当我们处于观察者比可观察者更长寿的情况下,有没有好的方法来处理它?