用java.util.Observable实现Observer模式
2011-11-16 17:13
387 查看
Observer模式 主要是观察者与被观察者之间的关系
观察者为羊,被观察者为狼 模仿的场景为狼叫羊跑
代码如下:
1.被观察者类
2.观察者类
3.测试
4.结果:
wolf1 crying
wolf1 crying and hungry sheep2 running.....
wolf1 crying and hungry sheep1 running.....
观察者为羊,被观察者为狼 模仿的场景为狼叫羊跑
代码如下:
1.被观察者类
package test.pattern.observer; import java.util.Observable; public class Wolf extends Observable{ private String name; Wolf(String name) { this.name = name; } public void cry(String state){ System.out.println(this.getName()+ " crying "); this.setChanged(); this.notifyObservers(state); } public String getName() { return name; } public void setName(String name) { this.name = name; } }
2.观察者类
package test.pattern.observer; import java.util.Observable; import java.util.Observer; public class Sheep implements Observer { private String state = "eating"; private String name; public Sheep(String name){ this.name = name; } public void update(Observable o, Object arg) { // TODO Auto-generated method stub Wolf wolf = (Wolf)o; System.out.println(wolf.getName()+" crying and "+arg+" "+this.getName()+" running....."); setState("running"); } public String getState() { return state; } public void setState(String state) { this.state = state; } public String getName() { return name; } public void setName(String name) { this.name = name; } }
3.测试
package test.pattern.observer; public class TestObserver { public static void main(String[] args) { Wolf wolf = new Wolf("wolf1"); Sheep sheep1 = new Sheep("sheep1"); Sheep sheep2 = new Sheep("sheep2"); Sheep sheep3 = new Sheep("sheep3"); //注册观察者,sheep1,sheep2加入,sheep3未加入 wolf.addObserver(sheep1); wolf.addObserver(sheep2); String wolfStat = "hungry"; //wolf begin cry wolf.cry(wolfStat); } }
4.结果:
wolf1 crying
wolf1 crying and hungry sheep2 running.....
wolf1 crying and hungry sheep1 running.....
相关文章推荐
- 用java.util.Observable实现Observer模式
- 用java.util.Observable实现Observer模式
- Java观察者模式 java.util.Observable 与 java.util.Observer 的理解
- Java观察者模式 java.util.Observable 与 java.util.Observer 的理解
- Java 语言使用 Observer/Observable 实现简单的观察者模式
- [置顶] Java Observer与Observable实现观察者模式
- Java观察者模式 java.util.Observable 与 java.util.Observer 的理解
- Rx_java(2) 使用java中的类(Observable与Observer)实现观察者模式
- 【 应用以及剖析】之 java.util.Observer 观察者模式实现
- Java 语言使用 Observer/Observable 实现简单的观察者模式
- Java观察者模式 java.util.Observable 与 java.util.Observer 的理解及测试实例
- Java观察者模式 java.util.Observable 与 java.util.Observer 的理解
- Java_观察者模式(Observable和Observer)
- Java 实现观察者(Observer)模式
- Java_观察者模式(Observable和Observer)
- java中实现observer模式
- Java观察者设计模式(Observable和Observer)
- Java观察者模式 : Observer / Observable
- 观察者模式(Observer Pattern)(三):使用java内置的支持实现HeadFirst气象站
- 观察者模式-java 内置 Observable 和 Observer