Java——观察者模式实例
2016-06-02 21:49
477 查看
观察者模式(订阅/发布模式)
作者:
代码大湿
代码大湿
Java中观察者模式中主要是Observerable类(被观察者),和Observer接口(观察者)。下面是个简单的demo
//被观察者
//观察者
//main方法
结果
更多好文关注;
代码大湿
代码大湿
作者:
代码大湿
代码大湿
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); } }
结果
更多好文关注;
代码大湿
代码大湿
相关文章推荐
- Java多线程 之 Callable sleep yield 优先级(三)
- leetcode-java-7. Reverse Integer
- JavaWeb中使用过滤器来解决中文乱码问题
- 码神学Java第二天
- Java最基本的学习
- 关于java.util.Calendar类
- Java——泛型(最易懂的方式讲解泛型)
- java 小方法
- 抓取百度百科数据
- java enum(枚举)使用详解 + 总结
- MAC主要设置 - 切换当前JDK版本
- mysql:java程序向mysql中插入数据的中文乱码
- 【java并发】线程并发库的使用
- Struts2中的OGNL详解
- [疯狂Java]泛型:泛型的定义(类、接口、对象)、使用、继承
- Java——泛型(最易懂的方式阐述泛型)
- 判断2个数是否能被除尽java(可以小数)
- leetcode-java-169. Majority Element
- JAVA大数处理(BigInteger,BigDecimal)
- java线程池的原理及实现