JAVA设计模式七--observer(观察者模式)(二)

2014-11-24 08:20:13 · 作者: · 浏览: 1
//产生数字
}

package design.observer;

/**
* 文件名称:design.singleton.Singleton.java
* 创建人:Fei Wong
* 创建时间: 2012-06-20
* 电子邮箱:www.2cto.com
* 说明:以数字表示观察者的类
* */
public class NumberObserver implements Observer {

@Override
public void update(NumberGenerator generator) {
System.out.println("NumberObserver:" + generator.getNumber());
try {
Thread.sleep(1000 * 3); // 为了能清楚的看到输出,休眠3秒钟。
} catch (InterruptedException e) {
e.printStackTrace();
}
}

}


package design.observer;

/**
* 文件名称:design.singleton.Singleton.java 创建人:Fei Wong 创建时间: 2012-06-20
* 电子邮箱:www.2cto.com
说明:以数字表示观察者的类
*/
public class SymbolObserver implements Observer {

@Override
public void update(NumberGenerator generator) {
System.out.print("SymbolObserver:");
int count = generator.getNumber();

for (int i = 0; i < count; i++) {
System.out.print("*^_^* ");
}
System.out.println();
try {
Thread.sleep(1000 * 3);
} catch (InterruptedException e) {
e.printStackTrace();
}
}

}
package design.observer;
/**
* 文件名称:design.singleton.Singleton.java
* 创建人:Fei Wong
* 创建时间: 2012-06-20
* 电子邮箱:www.2cto.com

* 说明:观察者模式定义了对象之间的一对多的依赖关系,当一个对象的状态发生改变时,所有它的依赖对象将被自动通知并更新
*/
public class Main {
public static void main(String[] args) {
//实例化数字产生对象
NumberGenerator generator = new RandomNumberGenerator();
//实例化观察者
Observer observer1 = new NumberObserver();
Observer observer2 = new SymbolObserver();
//注册观察者
generator.addObserver(observer1);
generator.addObserver(observer2);
generator.generate(); //产生数字
}
}

作者:hfmbook