程序实例
通过程序实例来说明观察者模式:
首先定义抽象的观察者:
//抽象观察者角色 public interface Watcher { public void update(String str); }
然后定义抽象的主题角色,即抽象的被观察者,在其中声明方法(添加、移除观察者,通知观察者):
//抽象主题角色,watched:被观察 public interface Watched { public void addWatcher(Watcher watcher); public void removeWatcher(Watcher watcher); public void notifyWatchers(String str); }
然后定义具体的观察者:
public class ConcreteWatcher implements Watcher { @Override public void update(String str) { System.out.println(str); } }
之后是具体的主题角色:
import java.util.ArrayList; import java.util.List; public class ConcreteWatched implements Watched { // 存放观察者 private List<Watcher> list = new ArrayList<Watcher>(); @Override public void addWatcher(Watcher watcher) { list.add(watcher); } @Override public void removeWatcher(Watcher watcher) { list.remove(watcher); } @Override public void notifyWatchers(String str) { // 自动调用实际上是主题进行调用的 for (Watcher watcher : list) { watcher.update(str); } } }
编写测试类:
public class Test { public static void main(String[] args) { Watched girl = new ConcreteWatched(); Watcher watcher1 = new ConcreteWatcher(); Watcher watcher2 = new ConcreteWatcher(); Watcher watcher3 = new ConcreteWatcher(); girl.addWatcher(watcher1); girl.addWatcher(watcher2); girl.addWatcher(watcher3); girl.notifyWatchers("开心"); } }
相关推荐
java 设计模式 观察者模式 简单实例 包括测试test类
设计模式--观察者模式java例子
工厂模式-反射模式-登陆-查询-实例-简单分页 请将 数据库附加 并将文件考入相关的文件夹里
观察者模式实例代码,附详细注释~~
观察者模式及实例,适合初学者阅读 。。。。。。。。。。。。。。。
采用Java语言编写的一个观察者模式实例。观察者模式(有时又被称为模型-视图(View)模式、源-收听者(Listener)模式或从属者模式)是软件设计模式的一种。在此种模式中,一个目标物件管理所有相依于它的观察者物件,...
针对所有涉及的,监听者模式,观察者模式,订阅者模式的举例介绍,让大家更清晰的理解这几种模式的本质
实现软件模式中的观察者模式,观察者观察对象的状态,当对象的状态发生变化时,将会打印发生变化的对象。简单的一个demo实例
C#设计模式之观察者模式的应用实例。
IOS 观察者模式实例Demo IOS 设计 模式 观察者 Demo
c++中应用的观察着模式,软件环境是cocos2d-x,因为个人觉得还是很详细的思维值得借鉴。只是代码,没有readme文档导读
观察者模式-果园的监控 简单工厂模式-果园种植水果 建造者模式-建造不同的果园 原型模式-建造同样的果园 桥接模式-果园实现统一的种植方法 原型模式-建造同样的果园 原型模式-建造同样的果园 适配器模式-果园改变...
运用观察者模式及MVC模式的整合,是javaWeb的简单的实现了选民投票
观察者模式实例,用到java的继承,多态,加深概念理解.
NULL 博文链接:https://xizhenyin.iteye.com/blog/371321
【附加例4.1】利用中介者模式进行重构的实例 【附加例4.2】利用策略模式设计的相同数据的不同图表显示的实例 【附加例4.3】利用状态模式设计的天气状态软件 【附加例4.4】利用状态模式设计的中国个人...
设计模式-可复用面向对象软件的基础-实例研究:设计一个文档编资料.pdf
观察者模式的简单例子,根据《Head First设计模式》第2章中的天气预告版的例子编写
【例6.17】事件体系结构-观察者模式-大草原1 【例6.18】事件体系结构-观察者模式-大草原2 【例6.19】事件体系结构-观察者模式-温度显示 【例6.21】层次架构-软件测试 【例6.22】层次架构-银行- ...
java模式--模板模式实例代码,请参考我的博客:http://blog.csdn.net/yayun0516