gpt4 book ai didi

java - 使用观察者模式

转载 作者:行者123 更新时间:2023-11-30 06:30:27 25 4
gpt4 key购买 nike

我下面有一个观察者类。我的问题是我怎样才能设置这个类(class)来听(观察)超过 1 个科目?

    public class Observer2 implements Observer {
private Subject robot;


public Observer2(Subject robot){
this.robot = robot;
robot.registerObserver(this);
}

@Override
public void update(){}
}

最佳答案

你可以有一个Subject类,它将所有观察者存储在一个列表中。

public abstract class Subject
{
private ArrayList<Observer> observerList = new ArrayList<>();

public void attach(Observer observer)
{
observerList.add(observer);
}

/**
* Notifies observers to run execute
*/
protected void notifyObservers()
{
for(int i = 0; i < observerList.size(); i++)
{
observerList.get(i).update();
}
}
}

典型的观察者界面:

interface Observer
{
void update();
}

此后,您可以使用 notifyObservers() 方法触发观察者。

关于java - 使用观察者模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46267995/

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