我对模型- View - Controller 的东西还很陌生,这只是我的想法。为什么Observable类是要扩展的类而Observer类是接口(interface)呢?这样做的目的是什么?
最佳答案
正如您在 Java Documentation 中看到的那样Observable 类在 1.0 版中添加到 JDK 中。它可能有点过时了。但我们谈论的是 JDK,所以该类仍然存在,因为 JDK 保留所有已弃用的代码,直到人类灭绝。
如果您查看 Observer Pattern那么您可能已经意识到没有Observable 类。相反,它被命名为 Subject。 Subject 和 Observer 通常显示为类,而是用作接口(interface)。 JDK 中过时的观察者模式实现存在问题。 Subject (Observable) 是一个类并且必须被子类化。所以你遇到了你不能从另一个更重要的类继承的问题。 Java 只允许单一继承。
最佳建议:不要使用这个过时的实现。
两种选择:
- 根据接口(interface)编写自己的观察者模式实现
- 看看 JDK 中的所有这些监听器实现,它们实际上以某种现代方式实现了观察者模式
关于java - 为什么 Observable 是类而 Observer 是接口(interface)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30362166/