IWatched:

/*** @author com.tiantian* @version 创建时间:2012-11-20 下午4:58:25*/
public interface IWatched {public void addWatcher(IWatcher watcher);public void removeWatcher(IWatcher watcher);public void notifyWatchers(String msg);
}

IWatcher:

/*** @author com.tiantian* @version 创建时间:2012-11-20 下午4:55:23*/
public interface IWatcher {public void update(String msg);
}

Watched:

/*** @author com.tiantian* @version 创建时间:2012-11-20 下午5:01:05*/
public class Watched implements IWatched{private List<IWatcher> watchers = new ArrayList<IWatcher>();@Overridepublic void addWatcher(IWatcher watcher) {watchers.add(watcher);}@Overridepublic void removeWatcher(IWatcher watcher) {watchers.remove(watcher);}@Overridepublic void notifyWatchers(String msg) {for(IWatcher watcher : watchers){watcher.update(msg);}}
}

Watcher:

/*** @author com.tiantian* @version 创建时间:2012-11-20 下午5:04:56*/
public class Watcher implements IWatcher{@Overridepublic void update(String msg) {System.out.println(msg);}
}

Test:

/*** @author com.tiantian* @version 创建时间:2012-11-20 下午5:05:26*/
public class Test {public static void main(String[] args) {IWatched watched = new Watched();IWatcher watcher1 = new Watcher();IWatcher watcher2 = new Watcher();IWatcher watcher3 = new Watcher();watched.addWatcher(watcher1);watched.addWatcher(watcher2);watched.addWatcher(watcher3);watched.notifyWatchers("I have been clicked!");watched.removeWatcher(watcher1);watched.notifyWatchers("what's up");}
}

转载于:https://www.cnblogs.com/tiantianbyconan/archive/2012/11/20/2779371.html

java 观察者模式相关推荐

  1. java 观察者模式示例_观察者设计模式示例

    java 观察者模式示例 本文是我们名为" Java设计模式 "的学院课程的一部分. 在本课程中,您将深入研究大量的设计模式,并了解如何在Java中实现和利用它们. 您将了解模式如 ...

  2. java 观察者模式示例_Java中的观察者设计模式-示例教程

    java 观察者模式示例 观察者模式是行为设计模式之一 . 当您对对象的状态感兴趣并希望在发生任何更改时得到通知时,观察者设计模式很有用. 在观察者模式中,监视另一个对象状态的对象称为Observer ...

  3. java观察者模式本质_6.[研磨设计模式笔记]观察者模式

    1.定义 定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并自动更新. 2.解决问题 --订阅报纸 看起来订阅者是直接根有据打交道,但实际上,订阅者的订阅数据 ...

  4. [Java]观察者模式和中介者模式改造机场

    [Java]观察者模式和中介者模式改造机场 文章目录 [Java]观察者模式和中介者模式改造机场 题目 代码部分 运行结果 补充 题目 请以下面的情景为基础,将以下的情景进行 优化: 1. 定义4个处 ...

  5. Java观察者模式理解和实现

    今天本想一本正经的把RxJava看一看,想着前段时间RxJava都已经到了第二版,而自己RxJava的认识还只是很基础,甚至连基础都算不上,所以本着以后能在项目里优雅地把他用出来的想法,我开始了RxJ ...

  6. Java 观察者模式介绍及示例

    Java 观察者模式介绍及示例 一.观察者模式简介 1.1概念 观察者模式(Observer Pattern) : 观察者模式又名 发布/订阅模式,属于行为模式,定义了对象中一对多的依赖关系,让多个观 ...

  7. java观察者模式类图_设计模式(十八)——观察者模式(JDK Observable源码分析)...

    1 天气预报项目需求,具体要求以下: 1) 气象站能够将天天测量到的温度,湿度,气压等等以公告的形式发布出去(好比发布到本身的网站或第三方).java 2) 须要设计开放型 API,便于其余第三方也能 ...

  8. java观察者模式在spring中的应用_利用spring自己实现观察者模式

    利用spring,自己实现的一个观察者模式,写着玩玩,目的是为了加深理解,下次用Spring自带的玩一玩. 首先我们定义一个侦听类接口 package com.hyenas.common.listen ...

  9. java jdk 观察者模式_java观察者模式实现和java观察者模式演化

    简单的观察者模式实现 import java.util.ArrayList; import java.util.Collections; import java.util.Iterator; impo ...

  10. java观察者模式在spring中的应用_Spring源码之spring中的观察者模式和监听器的使用...

    声明:本文根据鲁班学院子路老师spring中观察者模式课程整理得来 观察者模式特点: 被观察者持有监听的观察者的引用. 被观察者支持增加和删除的观察者. 被观察者状态改变通知观察者. JDK中观察者i ...

最新文章

  1. android 自定义键盘高度不对,NVUE 容器一旦设置了position且容器高度不能超过整屏,在安卓端就会被键盘遮挡...
  2. mysql获取有哪几种状态_Mysql进阶垫脚石 -- Sql命令的执行状态有哪几种
  3. Json返回结果为null属性不显示解决方法
  4. Servlet--03--servlet的生命周期
  5. minitab怎么算西格玛水平_西格玛和西格玛水平
  6. linux非阻塞的socket EAGAIN的错误处理【转】
  7. 如何在Ubuntu里安装Helm
  8. python怎么处理数据标注_在python中将数据标记为敏感
  9. 国内首家,携程试点每周两天居家办公反响热烈,76%的员工主动报名
  10. android开机自动打开微信小程序,微信小程序新动态:可从手机桌面直接启动
  11. Vue组件通信(父传子、子传父、兄弟传值)
  12. H5(html5)入门教程
  13. 结果公示!400名博硕士获“优秀学位论文”奖!
  14. Cocos2D-HTML5开源2D游戏引擎
  15. 开箱即用!使用Rancher 2.3 启用Istio初体验
  16. 猴年猴赛雷,曙光服务器全面升级E5-v4平台
  17. 浅析 | 海岸试验数据管理系统TDM-设计理念(系统特征)
  18. ASP.NET Web程序设计 第六章 三层架构
  19. 再启程(重新安装微软商城(Microsoft Store))
  20. python中的列表是什么意思_python中列表的用法是什么

热门文章

  1. 第三阶段:2.产品运营:4.活动运营
  2. PL/SQL 包的概念及创建使用
  3. 第三方网站实现绑定微信登陆
  4. MySQL ORDER BY的使用
  5. python开发一个区块链只需40多行
  6. 5.25. Spring boot with Git version
  7. Centos 7 修改内核启动顺序
  8. 寄快递要在面单上写身份证号?市民担心个人信息泄露
  9. Ubuntuzilla: 安装最新版Mozilla软件的简单方法
  10. 写底部样式一定要加的属性