import
java.util.*;
class
Observer1
implements
Observer
{
public
void
update(Observable obj, Object arg)
{
System.out.println(
"Observer1"
);
}
}
class
Observer2
implements
Observer
{
public
void
update(Observable obj, Object arg)
{
System.out.println(
"Observer2"
);
}
}
class
BeingObserved
extends
Observable
{
void
func1()
{
setChanged();
notifyObservers(
new
Integer(
10
));
}
}
class
ObserverDemo {
public
static
void
main(String args[])
{
int
count_observer;
BeingObserved beingObserved =
new
BeingObserved();
Observer1 observer1 =
new
Observer1();
Observer2 observer2 =
new
Observer2();
beingObserved.addObserver(observer1);
beingObserved.addObserver(observer2);
count_observer = beingObserved.countObservers();
System.out.println(
"Number of observers before"
+
" calling deleteObserver(): "
+ count_observer);
beingObserved.func1();
beingObserved.deleteObservers();
count_observer = beingObserved.countObservers();
System.out.println(
"No. of observers after "
+
"calling deleteObserver(): "
+ count_observer);
beingObserved.func1();
}
}