观察者模式

来源:互联网 发布:中银淘宝联名卡 编辑:程序博客网 时间:2024/06/16 21:03

观察者模式概念:
顾名思义,该模式分为两种角色,观察者和被观察者(主题),当主题状态发生改变,就把状态信息发送给每个观察者;实现过程大概为:观察者都实现同一个观察者接口,重写里面的消息通知方法(用于主题更新的方法);主题也实现一个接口,接口里面涉及对观察者列表的删除更新操作;
一对多的关系,这种场景可以用在传感器检测方面,传感器当作一个主题对象,传感器状态一发生变化,立即更新给他的观察者

具体使用方法:

    public interface MyObserver{        public void notify(String msg);    }    //观察者    public class Observer1 implements MyObserver{        @Override        public void notify(String msg) {            // TODO Auto-generated method stub        }    }    public class Observer2 implements MyObserver{        @Override        public void notify(String msg) {            // TODO Auto-generated method stub        }    }    //主题接口  被观察者    public interface Topic{        public void addObserver(MyObserver observer);        public void delObserver(MyObserver observer);        public void notifyAllObserver();    }    public class MyTopic implements Topic{        private LinkedList<MyObserver> observerList = new LinkedList<MyObserver>();        private String state = "normal";        @Override        public void addObserver(MyObserver observer) {            // TODO Auto-generated method stub            observerList.add(observer);        }        @Override        public void delObserver(MyObserver observer) {            // TODO Auto-generated method stub            observerList.remove(observer);        }        @Override        public void notifyAllObserver() {            // TODO Auto-generated method stub            for(MyObserver observer : observerList){                observer.notify(state);            }        }    }
0 0