观察者模式

个人感觉就是做一个被观察对象,监视的对象,一旦被观察对象有任何变化,监视对象就能发觉!

定义一个观察者-警察(police),和被观察者-罪犯(criminal).

 1public class  Criminal extends Observable{
 2
 3private String name;
 4
 5public Criminal(){
 6
 7}

 8
 9public void break(String name){
10this.name=name;
11//添加
12setChanged();
13notifyObservers(name);
14}

15
16}


 1public class Police implements Observer{
 2
 3    public Police(){
 4
 5    }

 6
 7    public void update(Observable obj,Object arg){
 8    if (arg instanceof String){    
 9        name=(String)arg;
10        
11        System.out.println(name+" 越狱了! ");
12        }

13    }

14}


1public class Test{
2    public static void main(String[] args){
3        Police police=new Police();//一个警察
4        Criminal criminal=new Criminal();//一个犯人
5        criminal.addObserver(police);//分配任务,犯人由这个警察看管
6        criminal.break();
7    }

8}


代码分析:
Observable类 setChanged()方法,这个方法很简单就是声明我要做这个动作.

本例中就是罪犯在自己牢房门口写个牌子说,今天晚上我要逃跑!(估计没这么傻的人)

notifyObservers(name);就是告诉警察有人要逃跑,

警察过来检查发现如果谁门口有写牌子就发出警报,XX要逃狱!

一个犯人可以有多个警察监视,比如有的监视不能吸烟,有的监视不能逃跑

posted on 2007-04-08 21:40 巩伟 阅读(140) 评论(0)  编辑  收藏 所属分类: Design


只有注册用户登录后才能发表评论。


网站导航:
 

导航

<2025年7月>
293012345
6789101112
13141516171819
20212223242526
272829303112
3456789

统计

留言簿

随笔分类

文章分类

文章档案

搜索

最新评论