首页 > 其他 > 详细

观察者模式

时间:2015-10-14 21:47:10      阅读:129      评论:0      收藏:0      [点我收藏+]

        一、模式的动机        

        建立一种对象与对象之间的依赖关系。一个对象发生变化时将自己主动通知其它对象。其它对象将对应做出反应。发生改变的对象称为观察目标,而被通知的对象称为观察者。

                 技术分享

        二、模式定义

        观察者模式(Observer Pattern):定义了对象间一种一对多的依赖关系,使得每当一个对象状态发生改变时,其相关依赖对象皆得到通知并被自己主动更新。

        三、模式结构

        技术分享 

        四、模式分析

        1)观察者模式描写叙述了怎样建立对象与对象之间的依赖关系。

        2)这一模式中的关键对象是观察目标和观察者。一个目标能够有多个观察者,当观察目标的状态发生变化时。全部的观察者都将得到通知。

        3)观察者得到通知后。即时更新自己的状态,与观察目标同步。

        五、模式代码

1)抽象目标类

    public abstract class Subject {
        protected ArrayList observers =new ArrayList();//观察者数组
        public abstract void attach(Observer1 observer);//加入观察者
        public abstract void detach(Observer1 observer);//删除观察者
        public abstract void nontify();//通知观察者
    }
2)详细目标类

    public class ConcreteSubject extends Subject {
        //private Observer1 observer;
        public  void attach(Observer1 observer){
            observers.add(observer);
        }
        public  void detach(Observer1 observer){
            observers.remove(observer);
        }
        public  void nontify() {
            //使用for遍历循环通知全部观察者
            for(Object obs:observers){
                ((Observer1)obs).update();
            }
        }       
    }
3)抽线观察者

    public interface Observer1 {
        public void  update();
    }
4)详细观察者

    public  class ConcreteObserver implements Observer1 {
        public void update() {
            //更新相关的方法
        }
    }

版权声明:本文博主原创文章。博客,未经同意不得转载。

观察者模式

原文:http://www.cnblogs.com/hrhguanli/p/4878847.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!