Java观察者模式编程
观察者模式(订阅/发布模式)
作者:
代码大湿
代码大湿
Java中观察者模式中主要是Observerable类(被观察者),和Observer接口(观察者)。下面是个简单的demo
【Java观察者模式编程】//被观察者
package demo;
import java.util.Observable;
public class MyObserverable extends Observable{//被观察者调用了这个方法,观察者就会发现
@Override
protected synchronized void setChanged() {
// TODO Auto-generated method stub
super.setChanged();
}//被观察者调用了这个方法,就会向观察者发送改变的信息
@Override
public void notifyObservers(Object arg) {
// TODO Auto-generated method stub
super.notifyObservers(arg);
}}
//观察者
package demo;
import java.util.Observable;
import java.util.Observer;
public class MyObserver implements Observer{
private String name;
public MyObserver(String name) {
this.name=name;
}
//一旦被观察者有改变,就会调用update方法
@Override
public void update(Observable o, Object arg) {
System.out.println(name+"观察到 "+arg.toString());
}}
//main方法
package demo;
public class Main {
public static void main(String[] args) {
MyObserver myObserver_1=new MyObserver("observer_1");
MyObserver myObserver_2=new MyObserver("observer_2");
MyObserverable myObserverable=new MyObserverable();
//添加2个观察者
myObserverable.addObserver(myObserver_1);
myObserverable.addObserver(myObserver_2);
String msg="msg has changed";
//设置消息改变点
myObserverable.setChanged();
//通知观察者改变的消息
myObserverable.notifyObservers(msg);
}}
结果
文章图片
更多好文关注;
代码大湿
代码大湿
推荐阅读
- JAVA(抽象类与接口的区别&重载与重写&内存泄漏)
- 事件代理
- Java|Java OpenCV图像处理之SIFT角点检测详解
- java中如何实现重建二叉树
- 数组常用方法一
- 【Hadoop踩雷】Mac下安装Hadoop3以及Java版本问题
- Java|Java基础——数组
- RxJava|RxJava 在Android项目中的使用(一)
- java之static、static|java之static、static final、final的区别与应用
- Java基础-高级特性-枚举实现状态机