gpt4 book ai didi

Java 可观察接口(interface)

转载 作者:行者123 更新时间:2023-12-02 10:47:32 24 4
gpt4 key购买 nike

我有以下内容:

  1. Java 类:ClassA 实现 Observer

  2. Java 接口(interface):Inter(扩展 Observable,不可能)

  3. Java 类:ClassB 实现 Inter 扩展 Observable

  4. Java 类:ClassC 实现 Inter 扩展 Observable

现在 ClassA 的代码有点像这样。

ClassA{
Inter anyClass = new ClassB();
//or it could be
Inter anyClass = new ClassC();
//Inter.addObserver(this); //not possible since Interface cannot extend Observable
}

现在,如果 ClassB 或 ClassC 中发生特定事件,我希望 ClassA 知道它。我想过使用 Observer/Observable,但问题是接口(interface)无法扩展 Observable。

如果有人理解这个问题,请帮我找到一种方法,当 ClassB 或 ClassC 发生问题时更新 ClassA。

最佳答案

您不必特别使用内置的 Observer/Observable java 实现。您可以创建自己的接口(interface)来使用观察者模式。

使用方法“update”或“notify”(或类似的方法)创建一个接口(interface)观察者,该方法将用于 ClassA

然后使用“Inter”接口(interface)充当 Observable,确保它实现以下内容:

- registerObserver(Observer)
- unregisterObserver(Observer)
- notifyObservers() //(or updateObservers(), which calls the update/notify method for all registered observers)

确保实现“Inter”接口(interface)的类也有一个名为observerCollection的数组列表来跟踪观察者。然后每当 ClassB 或 ClassC 发生变化并且您想告诉 ClassA(观察者)时,您可以调用 notifyObservers() 让它知道发生了变化。

看看这个,看看观察者设计模式会发生什么:http://en.wikipedia.org/wiki/File:Observer.svg

关于Java 可观察接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11404034/

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