码迷,mamicode.com
首页 > 其他好文 > 详细

设计模式——观察者模式(Observer)

时间:2015-08-27 19:29:43      阅读:154      评论:0      收藏:0      [点我收藏+]

标签:

1观察者模式:有观察者,那么肯定会有相应的被观察者,观察者模式的精髓可以总结为—当被观察者发生变化时,能够及时告知观察值,观察者得到通知后可以进行相应的处理。

2示例代码

2.1 定义观察者接口,方法意为,当观察者收到被观察者的通知时,会做出相应的处理

Obverser {

    change();
}

2.2定义两个观察者

Observer1 Obverser {
    change() {
        System..println();
    }
}
Observer2 Obverser {
    change() {
        System..println();
    }
}

2.3定义被观察者(既然要通知,那么就应该有保存待通知的对象以及添加删除通知对象的方法,可以拓展;通知的方法)

Subject {

    notification();

    add(Obverser obverser);

    del(Obverser obverser);
    
    opreation();
}

2.4被观察者的实现类(这里为什么定义成抽象类,是因为 可能不同的被观察者会通知不同的观察者)

Msubject Subject {
   Vector<Obverser> =Vector<Obverser>();
    notification() {
        Enumeration<Obverser> enumeration= .elements();
        (enumeration.hasMoreElements())
        {
            enumeration.nextElement().change();
        }
    }

    add(Obverser obverser) {
        .add(obverser);
    }

    del(Obverser obverser) {
        .remove(obverser);
    }

}

2.5具体的某一个被观察者

MSubsubject Msubject {
    opreation() {
        System..println();
        notification();
    }
}


2.6 测试

Main {

    main(String[] args) {
        Subject subject=MSubsubject();
        subject.add(Observer1());
        subject.add(Observer2());
        subject.opreation();
    }
}

2.7 测试结果

5555555555555555

11111111111111

222222222222222222


设计模式——观察者模式(Observer)

标签:

原文地址:http://my.oschina.net/jixin/blog/498216

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!