版权声明:本文为博主原创文章,未经博主允许不得转载。个人公众号:百草疯茂 https://blog.csdn.net/wang_pengyu/article/details/84892032
package com.test.DPs.XingWei.Observer;
import java.util.Enumeration;
import java.util.Vector;
/**
* 行为型:Observer-观察者 外观:作用面为 对象
*/
interface Observer{
void update();
}
class Observer1 implements Observer{
@Override
public void update(){
System.out.println("Observer1 has received!");
}
}
class Observer2 implements Observer{
@Override
public void update(){
System.out.println("Observer2 has received!");
}
}
interface Subject{
//void add(Observer observer);
//void del(Observer observer);
void notifyObservers();
void operation();
}
/**
* 用途:定义对象间的一种一对多的依赖关系。
* 当一个对象的状态发生改变时,所有依赖与它的对象都得到通知并被自动更新。
*/
abstract class AbstractSubject implements Subject{
private Vector<Observer> vector = new Vector<Observer>();
@Override
public void notifyObservers(){
Enumeration<Observer> enumo = vector.elements();
while(enumo.hasMoreElements()){
enumo.nextElement().update();
}
}
}
class mySubject extends AbstractSubject{
@Override
public void operation(){
System.out.println("update self!");
notifyObservers();
}
}