转自:http://www.uplook.cn/index-Index-show-view4864.html?treeid=68
void addObserver(Observero)
|
setChanged();
notifyObservers();
|
void update(Observableo, Objectarg)
|
packagecom.zj.observer;
importjava.util.Observable;
public classNumObservable
extendsObservable {
private intdata = 0;
public intgetData() {
returndata;
}
public voidsetData(
inti) {
data = i;
setChanged();
notifyObservers();
}
}
|
packagecom.zj.observer;
importjava.util.Observable;
importjava.util.Observer;
public classNumObserver
implementsObserver{
public voidupdate(Observable o, Object arg) {
NumObservable myObserable=(NumObservable) o;
System.
out.println("Data has changed to " +myObserable.getData());
}
}
|
packagecom.zj.observer;
public classSingleTest {
public static voidmain(String[] args) {
NumObservable number =
newNumObservable();
number.addObserver(
newNumObserver());
number.setData(1);
number.setData(2);
number.setData(3);
}
}
|
packagecom.zj.observers;
importjava.util.Observable;
public classNumsObservable
extendsObservable {
public final staticInteger
ODD= 1;
public final staticInteger
EVEN= 2;
private intdata = 0;
public intgetData() {
returndata;
}
public voidsetData(
inti) {
data = i;
Integer flag =
EVEN;
if((data & 0x0001) == 1)
flag =
ODD;
setChanged();
notifyObservers(flag);
}
}
|
packagecom.zj.observers;
importjava.util.Observable;
importjava.util.Observer;
public classOddObserver
implementsObserver {
public voidupdate(Observable o, Object arg) {
if(arg == NumsObservable.
ODD) {
NumsObservable myObserable = (NumsObservable) o;
System.
out.println("OddObserver:Data has changed to " + myObserable.getData());
}
}
}
|
packagecom.zj.observers;
importjava.util.Observable;
importjava.util.Observer;
public classEvenObserver
implementsObserver {
public voidupdate(Observable o, Object arg) {
if(arg == NumsObservable.
EVEN) {
NumsObservable myObserable = (NumsObservable) o;
System.
out.println("EvenObserver:Data has changed to " + myObserable.getData());
}
}
}
|
packagecom.zj.observers;
public classMultiTest {
public static voidmain(String[] args) {
NumsObservable number =
newNumsObservable();
number.addObserver(
newOddObserver());
number.addObserver(
newEvenObserver());
number.setData(1);
number.setData(2);
number.setData(3);
}
}
|
本文出自 “子 孑” 博客,原文链接:http://zhangjunhd.blog.51cto.com/113473/68949