Java观察者模式怎么使用

网友投稿 169 2023-12-27

在Java中使用观察者模式,需要以下几个步骤:

定义观察者接口(Observer):该接口中定义了观察者需要实现的方法,通常包括update()方法,用于接收被观察者发送的通知。

定义被观察者接口(Subject):该接口中定义了被观察者需要实现的方法,通常包括注册观察者、移除观察者、通知观察者等方法。

实现观察者接口(具体观察者):针对具体的观察者对象,实现观察者接口中的方法,根据具体需求进行相应的操作。

实现被观察者接口(具体被观察者):针对具体的被观察者对象,实现被观察者接口中的方法,包括注册观察者、移除观察者、通知观察者等。

在被观察者中维护观察者列表:被观察者需要维护一个观察者列表,用于存储注册的观察者对象。

在被观察者的状态变化时通知观察者:当被观察者的状态发生变化时,需要遍历观察者列表,调用每个观察者的update()方法,将通知发送给观察者。

下面是一个简单的示例代码:

// 定义观察者接口 interfaceObserver{ voidupdate(String message); } // 定义被观察者接口 interfaceSubject{ voidregisterObserver(Observer observer); voidremoveObserver(Observer observer); voidnotifyObservers(String message); }// 实现观察者接口 classConcreteObserverimplementsObserver{ private String name; publicConcreteObserver(String name){ this.name = name; } publicvoidupdate(String message){ System.out.println(name +" received message: " + message); } } // 实现被观察者接口 classConcreteSubjectimplementsSubject{ private List<Observer> observers = new ArrayList<>(); publicvoidregisterObserver(Observer observer){ observers.add(observer); } publicvoidremoveObserver(Observer observer){ observers.remove(observer); }publicvoidnotifyObservers(String message){ for(Observer observer : observers) { observer.update(message); } } }public classMain{ publicstaticvoidmain(String[] args){ ConcreteSubject subject = new ConcreteSubject(); Observer observer1 = new ConcreteObserver("Observer1"); subject.registerObserver(observer1); Observer observer2 = new ConcreteObserver("Observer2"); subject.registerObserver(observer2); subject.notifyObservers("Hello, world!"); } }

运行上述代码,输出结果为:

Observer1 received message: Hello, world! Observer2 received message: Hello, world!

可以看到,当被观察者发送通知时,观察者接收到了相应的消息。

购买使用服务器,可以极大降低初创企业、中小企业以及个人开发者等用户群体的整体IT使用成本,无需亲自搭建基础设施、简化了运维和管理的日常工作量,使用户能够更专注于自身的业务发展和创新。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:linux进入数据库的方法是什么
下一篇:数据流量是什么?它和 Wi-Fi 有什么区别?
相关文章

 发表评论

暂时没有评论,来抢沙发吧~