java设计模式学习笔记6 观察者模式

发布时间:2016-12-11 2:35:06 编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"java设计模式学习笔记6 观察者模式",主要涉及到java设计模式学习笔记6 观察者模式方面的内容,对于java设计模式学习笔记6 观察者模式感兴趣的同学可以参考一下。

观察者模式:定义了一种一对多的依赖关系,让多个观察者对象同时监听同一个主题对象,当主题对象内部状态发生变化时,通知所有观察者 观察着模式在java中又很重要的应用和地位,在awt,Swing的监听器中应用广泛,java甚至对他提供了内置的支持。 观察者模式有以下组成: -两个抽象角色: ---抽象主题角色:将所有观察者对象的引用放到一个集合里,提供接口用于增删,一般用抽象类或者接口实现,使用java提供的Observable接口 ---抽象观察者:使用java提供的Observer接口 -两个具体角色: ---具体主题角色:当具体主题内部状态改变时,给所有登记过的观察者,发通知,实现Observable接口。 ---具体观察者角色:实现Observer接口,重写update方法 测试: 一、具体主题角色,实现java内置的抽象主题接口 Observable /** * Created by charleszhu on 14-2-3. * 具体主题角色 */ public class MyObserverable extends Observable { public void notifyTwoOb(int i){ // 自定义通知方法 for(;i>0;i--){ this.setChanged();//状态改变的时候,一定改变changed的值 this.notifyObservers(i);// 通知所有观察者状态已经发生的变化 } } }二、定义两个观察者角色,方法,实现java内置的Observer接口 /** * Created by charleszhu on 14-2-3. */ public class MyObserve implements Observer { // 监听对象,当对象的参数减少时候,输出 @Override public void update(Observable o, Object arg) { // Integer i = (Integer)arg; System.out.println(arg); } } /** * Created by charleszhu on 14-2-3. */ public class MyObserve1 implements Observer { // 监听对象,当对象的参数减少到5的时候,输出 @Override public void update(Observable o, Object arg) { Integer i = (Integer)arg; if (i<=5) System.out.println(i); } } 三 写测试类 /** * Created by charleszhu on 14-2-3. */ public class Test { public static void main(String[] args) { // 生成主题对象实例 MyObserverable mb = new MyObserverable(); // 生成两个观察者 Observer o1 = new MyObserve(); Observer o2 = new MyObserve1(); // 将观察者放入主题中 mb.addObserver(o1); mb.addObserver(o2); // 调用通知观察者方法 mb.notifyTwoOb(10); } }

上一篇:简单使用listview
下一篇:title_test61026083

相关文章

相关评论