Starting from the client:
@ Testpublic void testobserver () {numobserverable observable = new numobserverable (); // obobserver observer1 = new numobserver (); // observer observer2 = new oddoberser (); // observer observer3 = new evenoberser (); // observer observable. addobserver (observer2); // observable. addobserver (observer3); observable. addobserver (observer1); observable. setdata (5 );}
Numobserverab class
public class NumObserverable extends Observable{public static final Integer EVEN = 2;public static final Integer ODD = 1;private int data = 0;public int getData() {return data;}public void setData(int data) {this.data = data;Integer flag = EVEN;if((data&0x00001) == 1){flag = ODD;}setChanged();notifyObservers(flag);}}
Oddobserver class
Public class oddoberser implements observer {public void Update (observable o, object Arg) {If (ARG = numobserverable. odd) {system. out. println ("numoberserale has an odd number setting:" + (numobserverable) O ). getdata ());}}}
Evenobserver class
Public class evenoberser implements observer {public void Update (observable o, object Arg) {If (ARG = numobserverable. even) {system. out. println ("numoberserale has an even number setting:" + (numobserverable) O ). getdata ());}}}