java观察者模式

java观察者模式

java观察者模式目录

Java观察者模式是一种设计模式,它允许对象之间进行松散耦合,并允许一个对象(称为主题)在其状态发生改变时通知其他对象(称为观察者)。

在Java中,观察者模式由java.util.Observable和java.util.Observer两个接口实现。主题(被观察者)继承Observable接口,观察者实现Observer接口。主题维护一个观察者列表,并在其状态发生改变时通知列表中的所有观察者。

1.创建主题类,并继承Observable接口。

2.在主题类中定义状态,并在状态发生改变时调用setChanged()方法,并调用notifyObservers()方法通知所有观察者。

3.创建观察者类,并实现Observer接口。

4.在观察者类中实现update()方法,以响应主题状态的变化。

5.创建主题对象和观察者对象,并将观察者对象添加到主题的观察者列表中。

6.修改主题状态,并观察观察者对象是否收到通知。

主题类:

“`java

import java.util.Observable;

public class Subject extends Observable {

private int state;

public int getState() {

return state;

}

public void setState(int state) {

this.state = state;

setChanged();

notifyObservers();

}

}

“`

观察者类:

“`java

import java.util.Observable;

import java.util.Observer;

public class ObserverImpl implements Observer {

@Override

public void update(Observable o, Object arg) {

System.out.println(\”ObserverImpl notified, state = \” + ((Subject) o).getState());

}

}

“`

测试代码:

“`java

public class Test {

public static void main(String[] args) {

Subject subject = new Subject();

ObserverImpl observer = new ObserverImpl();

subject.addObserver(observer);

subject.setState(1);

}

}

“`

输出:

“`

ObserverImpl notified, state = 1

“`

在这个例子中,Subject是被观察者,ObserverImpl是观察者。当Subject的状态改变时,它会通知ObserverImpl,ObserverImpl会输出状态值。”

给TA打赏
共{{data.count}}人
人已打赏
影视后期

key是什么意思

2024-3-29 20:13:50

影视后期

教学英文

2024-3-29 20:39:46

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索
打开微信,扫描左侧二维码,关注【旅游人lvyouren】,发送【101】获取验证码,输入获取到的验证码即可解锁复制功能,解锁之后可复制网站任意一篇文章,验证码每月更新一次。
提交