设计模式学习之Observer模式

来源:互联网 发布:mac看视频卡死如何退出 编辑:程序博客网 时间:2024/05/22 17:03
观察者模式实现的效果类似于监听器,可以对某个操作之后执行我们自己的代码;
被观察者需要实现Observable类,在需要监听的方法中设置改变点(setChange),调用notifyObservers方法。
实现Observer接口创建观察者,实现update方法,编写自己的代码。

被观察者类

public class Product extends Observable{    private String name;        public Product(String name){           this. name = name;    }    public void setName(String name) {           this. name = name;           //设置改变          setChanged();           //触发           notifyObservers(name);    }        public String getName() {           return name;    }}

观察者类

public class MyObserver implements Observer {    @Override    public void update(Observable arg0, Object arg1) {        /*     * arg0 为被观察对象     * arg1 为 notifyObservers()方法所传入的参数     * */        //根据arg1参数判定执行我们所需要的操作           if(arg1 instanceof String){               System. out.println( "name change to----->"+arg1);          }    }}

测试代码
 public static void main(String[] args) {          Product p = new Product( "haha");          p.addObserver( new MyObserver());          p.setName( "hehe");    }

输出结果
name change to----->hehe