博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java——观察者模式实例
阅读量:7051 次
发布时间:2019-06-28

本文共 1490 字,大约阅读时间需要 4 分钟。

观察者模式(订阅/发布模式)

作者:

Java中观察者模式中主要是Observerable类(被观察者),和Observer接口(观察者)。下面是个简单的demo

//被观察者

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);    }}

结果

这里写图片描述


更多好文关注;

转载于:https://www.cnblogs.com/pin-wang/p/5554512.html

你可能感兴趣的文章
Linux USB 驱动开发(一)—— USB设备基础概念
查看>>
关于乱码问题的机理分析
查看>>
[译] 可工作软件的重要性
查看>>
Git :本地仓库提交到远程服务器
查看>>
Android开发在路上:少去踩坑,多走捷径【转】
查看>>
动态代理模式
查看>>
将博客搬至CSDN
查看>>
JQuery 修改 form 表单的 action 的值,并提交
查看>>
IOS 百度地图导入最新 SDK 2.9 报错
查看>>
Spark快速入门指南
查看>>
MySql用navcat连接时报错 2509
查看>>
android 显示 网络图片
查看>>
安装MySQLdb模块-python
查看>>
ubuntu快捷键
查看>>
IOS——生成智能调试输出
查看>>
杀毒软件Avast被曝严重的0day漏洞
查看>>
NDK Caused by: java.lang.UnsatisfiedLinkError:
查看>>
oracle timestamp相减
查看>>
【swing】 BoxLayout布局
查看>>
Android 属性动画(Property Animation)完全解析 (下)
查看>>