浏览 4458 次
锁定老帖子 主题:学习观察者模式的一个例子
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2008-10-07
最后修改:2010-06-08
我的想法是一个观察一个。也就是老鼠观察猫的,人观察老鼠的。所以首先猫是被观察者,而老鼠即是观察者也是被观察者。人就是老鼠的观察者。 代码如下: 首先我建立了三个类,分别是猫的,老鼠的和人的。 猫的类 package com.lhsm.observer; import java.util.Observable; public class Cat extends Observable { public void catCall(){ this.setChanged(); this.notifyObservers("猫叫了"); } } 老鼠的类 package com.lhsm.observer; import java.util.Observable; import java.util.Observer; public class Mouse extends Observable implements Observer { public void update(Observable arg0, Object arg1) { // TODO Auto-generated method stub System.out.println(arg1); Observer person = new Person(); this.clearChanged(); this.addObserver(person); this.setChanged(); this.notifyObservers("老鼠跑"); } } 人的类 package com.lhsm.observer; import java.util.Observable; import java.util.Observer; public class Person implements Observer { public void update(Observable arg0, Object arg1) { // TODO Auto-generated method stub System.out.println(arg1); System.out.println("人醒"); } } 下面是主方法的测试类 package com.lhsm.observer; import java.util.Observer; public class TestMain { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub Cat cat = new Cat(); Observer mouse = new Mouse(); cat.addObserver(mouse); cat.catCall(); } } 运行结果 猫叫了 老鼠跑 人醒 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |