现在我遇到了观察者/观察者模式,我让观察者通知我所有的观察者。Observer 都实现了 Observer 接口,而 Observable 扩展了 Observable。我想我正在尝试填补我在接口方面的知识空白。我理解抽象类的意义以及它们是如何工作的,但是接口一直很棘手。对于接口,我知道它们充当模板,如果您实现一个模板,那么您需要从接口添加所有方法。我认为这纯粹是为了在您的项目中提供组织帮助。
但是,对于这种 Observer/Observable 案例,我不明白在实现 Observer 的对象中如何调用 update() 函数。与 Observable 的唯一链接是您必须调用 addObserver() 来添加 Observer,然后将其存储在一个列表中,并添加其他 Observer。但在那之后,如何在每个 Observer 上调用 update() 呢?一旦我调用 setChanged() 然后 notifyObservers(),Observable 是否只是通过观察者列表并调用observer.update() 吗?这是有道理的,但实现比我想象的要隐藏得多。
我把它放在观察者模式的上下文中,但它确实适用于任何事情。我注意到几乎所有基于事件的事物都使用接口。这是因为可以保证 Object 将具有随后调用的函数吗?