package com.haizhitao.observer;
import java.util.Observable;
import java.util.Observer;
class BeingWatched extends Observable
{
void count(int number)
{
for(; number >= 0; number--)
{
this.setChanged();
this.notifyObservers(number);
}
}
}
class Watcher1 implements Observer
{
@Override
public void update(Observable o, Object arg)
{
System.out.println("Watcher1's count: " + arg);
}
}
class Watcher2 implements Observer
{
@Override
public void update(Observable o, Object arg)
{
if(((Integer)arg).intValue() <= 5)
{
System.out.println("Watcher2's count: " + arg);
}
}
}
public class TwoObservers
{
public static void main(String[] args)
{
BeingWatched watched = new BeingWatched();
Watcher1 watcher1 = new Watcher1();
Watcher2 watcher2 = new Watcher2();
watched.addObserver(watcher1);
watched.addObserver(watcher2);
watched.count(10);
}
}
//output:
// Watcher1's count: 10
// Watcher1's count: 9
// Watcher1's count: 8
// Watcher1's count: 7
// Watcher1's count: 6a
// Watcher2's count: 5
// Watcher1's count: 5
// Watcher2's count: 4
// Watcher1's count: 4
// Watcher2's count: 3
// Watcher1's count: 3
// Watcher2's count: 2
// Watcher1's count: 2
// Watcher2's count: 1
// Watcher1's count: 1
// Watcher2's count: 0
// Watcher1's count: 0
52
最新推荐文章于 2024-01-18 14:55:55 发布