import java.util.Observable;
import java.util.Observer;
/*
* 观察者模式的小例子,仅供参考
*/
// 创建一个被观察的类,继承自Observable
public class Watched extends Observable {
//构建自己的方法
public void sent(){
for(int i = 0;i<10;i++){
//改变内部changed的值为true
setChanged();
//通知观察者实现自己的update方法
notifyObservers(i);
}
}
public static void main(String[] args){
/*
* 实例一个被观察者对象,在实例两个观察者
* 分别对被观察着进行观察
*/
Watched w = new Watched();
w.addObserver(new Watcher1());
w.addObserver(new Watcher3());
//被观察着调用自己的方法
w.sent();
}
}
//创建第一个观察者的类
class Watcher1 implements Observer{
@Override
public void update(Observable o, Object arg) {
System.out.println("第一个观察者" + arg);
}
}
//创建第二个观察者的类
class Watcher3 implements Observer{
@Override
public void update(Observable o, Object arg) {
if((Integer)arg<=5){
System.out.println("第三个观察者" + arg);
}
}
}
import java.util.Observer;
/*
* 观察者模式的小例子,仅供参考
*/
// 创建一个被观察的类,继承自Observable
public class Watched extends Observable {
//构建自己的方法
public void sent(){
for(int i = 0;i<10;i++){
//改变内部changed的值为true
setChanged();
//通知观察者实现自己的update方法
notifyObservers(i);
}
}
public static void main(String[] args){
/*
* 实例一个被观察者对象,在实例两个观察者
* 分别对被观察着进行观察
*/
Watched w = new Watched();
w.addObserver(new Watcher1());
w.addObserver(new Watcher3());
//被观察着调用自己的方法
w.sent();
}
}
//创建第一个观察者的类
class Watcher1 implements Observer{
@Override
public void update(Observable o, Object arg) {
System.out.println("第一个观察者" + arg);
}
}
//创建第二个观察者的类
class Watcher3 implements Observer{
@Override
public void update(Observable o, Object arg) {
if((Integer)arg<=5){
System.out.println("第三个观察者" + arg);
}
}
}