java设计模式-观察者模式

来源:互联网 发布:景德镇餐具套装淘宝 编辑:程序博客网 时间:2024/05/25 23:57

对于程序员来说,观察者模式这个词一定再熟悉不过了。但是可能还是有人对它的印象不是很深,因为这个名词还是有一定的抽象性的。今天我用一个及其简单的demo来谈一谈观察者模式。

如果您觉得观察者模式抽象的话,那您对监听一定太熟悉了。监听其实就是运用的观察者模式。

我下面写四个类,分别是:

抽象的{

观察者:抽象地定义观察者应有的属性和方法

被观察者:抽象地定义被观察者应有的属性和方法(此接口可以省略 直接定义被观察者)

}

具体的{
观察者: 定义一个实际的观察者类(也可以不定义,在使用的时候 使用匿名内部类)

被观察者: 定义一个实际的被观察者类,实现具体的逻辑(在什么时候调用观察者的什么方法等,什么地方触发什么方法等)

}

还有一个主类:把被观察者new出来~设置上监听~触发监听看看效果

好,这样基本架构ok了。下面看看具体代码:

http://download.csdn.net/detail/u010532761/9367666

代码在此,duang~

看看如何调用:

//首先创建一个被观察者对象
Cwatchereder w2 = new Cwatchereder();//新建个被观察者
//给被观察者设置上一个观察者(监听)
w2.addWatcher(new Cwatcher());
System.out.println("这个地方经历了漫长的等待。。。");
System.out.println("突然有一天notify方法被执行了(看一下具体的notifywatcher方法,它调用了观察者的 Isee方法)");
w2.notifyWatcher(true);

//然后看看被观察者是怎么调用观察者的观察方法的:

public void notifyWatcher(boolean notify) {
// TODO Auto-generated method stub
if(notify){
System.out.println("notifywatcher===");
if(watcher!=null){
watcher.Isee(str);
}
}

}

大功告成,亲个嘴吧~

0 0
原创粉丝点击