gpt4 book ai didi

java - 构建 Observer 和 Observable 类

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

而不是使用内置类 ObservableObserver我正在尝试自己构建它。

我从文档中得出:

public class Observable{
private Set<Observer> observingMe=null;
private boolean amIchanged;

public void notifyObservers(Object args){
for(Observer o:observingMe){
o.update(args);
}
}

public void addObserver(Observer e){
observingMe.add(e);
}

}

public class Price implements Observable{
private int price;
public void setPrice(int newPrice){
price=newPrice;
notifyObservers(price);
}
}
public interface Observer{
public void update(Object args);
}

这是(简而言之)Observable 的正确实现吗?在构建 Observable 类时我还需要考虑什么。有没有一种方法可以自动检测 Observable 实例中的任何变化,或者继承的类是否必须显式调用 notifyObservers?

请不要介意语法或小错误

最佳答案

在您的通知方法中,考虑观察者在调用更新时抛出异常的情况。如果您不处理它,它将阻止其他观察者收到通知。此外,您可能希望在单独的线程中通知每个观察者,因为其中一个观察者可能需要很长时间才能对事件使用react,从而阻止其他人提前得到通知。

此外,您从不使用 boolean 值 amIChanged 并且在没有 setter/getter 的情况下将其保密。否则,您已经实现了基本原则。

关于java - 构建 Observer 和 Observable 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27757896/

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