Observer模式(观察者模式)

来源:互联网 发布:软件汉化教程 编辑:程序博客网 时间:2024/05/15 21:49

被观察对象内保存全部观察者信息,被观察对象更新时通知每个观察者对象。
代码如下:

//观察者 接口public interface Observer {    public void update(Subject subject);}//观察者实现类public class MyObserverA implements Observer{    @Override    public void update(Subject subject) {        System.out.println("a is updated");    }}public class MyObserverB implements Observer{    @Override    public void update(Subject subject) {        System.out.println("b is updated");    }}//被观察者public class Subject {    private static Vector obs = new Vector();        //注册观察者        public static void attach(Observer ob){        obs.add(ob);    }    //解除与注册者关联    public static void dettach(Observer ob){        obs.remove(ob);    }    //操作    public void operatio(){        //执行操作        //通知所有观察者        Enumeration elements = obs.elements();        while(elements.hasMoreElements()){        elements.nextElement().update(this);        }    }}//测试public class Client {    public static void main(String[] args) {        Subject.attach(new MyObserverA());        Subject.attach(new MyObserverB());        Subject subject = new Subject();        subject.operatio();    }}
原创粉丝点击