gpt4 book ai didi

java - 为什么 Observable 是类而 Observer 是接口(interface)?

转载 作者:行者123 更新时间:2023-11-29 06:58:14 24 4
gpt4 key购买 nike

我对模型- View - Controller 的东西还很陌生,这只是我的想法。为什么Observable类是要扩展的类而Observer类是接口(interface)呢?这样做的目的是什么?

最佳答案

正如您在 Java Documentation 中看到的那样Observable 类在 1.0 版中添加到 JDK 中。它可能有点过时了。但我们谈论的是 JDK,所以该类仍然存在,因为 JDK 保留所有已弃用的代码,直到人类灭绝。

如果您查看 Observer Pattern那么您可能已经意识到没有Observable 类。相反,它被命名为 SubjectSubjectObserver 通常显示为类,而是用作接口(interface)。 JDK 中过时的观察者模式实现存在问题。 Subject (Observable) 是一个类并且必须被子类化。所以你遇到了你不能从另一个更重要的类继承的问题。 Java 只允许单一继承。

最佳建议:不要使用这个过时的实现。

两种选择:

  • 根据接口(interface)编写自己的观察者模式实现
  • 看看 JDK 中的所有这些监听器实现,它们实际上以某种现代方式实现了观察者模式

关于java - 为什么 Observable 是类而 Observer 是接口(interface)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30362166/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com