观察者模式定义了一个对象和对个对象之间的一对多的依赖关系,当位于“一”方的状态变化时,将通知其他对象进行更新。
下面做一个新生到来时,自动通知班长和校长。
package com.observer;
import java.util.Observable;
import java.util.Observer;
public class Master implements Observer {
@Override
public void update(Observable o, Object arg) {
System.out.println("校长收到新生ID是"+arg.toString());
}
}
package com.observer;
import java.util.Observable;
import java.util.Observer;
public class Moniter implements Observer{
@Override
public void update(Observable o, Object arg) {
System.out.println("班长收到了新生ID 是"+arg.toString());
}
}
package com.observer;
import java.util.Observable;
public class Studentbean extends Observable{
static final Master MASTER=new Master();
static final Moniter MONITER=new Moniter();
int id;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public Studentbean(int id) {
super();
this.id=id;
addObserver(MONITER);
addObserver(MASTER);
}
void save(){
System.out.println("新生入学");
setChanged();
notifyObservers(id);
}
}
package com.observer;
public class Test {
public static void main(String[] args) {
Studentbean student=new Studentbean(11);
student.save();
}
}