java观察者设计模式
2019独角兽企业重金招聘Python工程师标准>>>
观察者模式定义了一个一对多的依赖关系。让一个或多个观察者可以监视某一对象,当该对象的状态发生变化时,就可以通知所有的观察者,观察者执行响应的动作。
在java中,被观察者必须继承Observable类,Observable类常用方法如下:
public void addObserver(Observer o) 添加一个观察者
public void deleteObserver(Observer 0) 删除一个观察者
protected void setChanged() 被观察者设置自己的状态发生了变化
public void notifyObservers(Object arg) 通知所有的观察者
每一个观察者都要实现Observer接口,Observer接口中只有一个update方法,
public void update(Observable o, Object arg)
第一个参数表示被观察者实例,第二个参数表示修改的内容。
被观察者代码:
package com.yeetrack.test;import java.util.Observable;public class Hourse extends Observable
{private int price; //自身的属性,代表房子价格public int getPrice(){return price;}public void setPrice(int price){this.price = price;super.setChanged(); //设置自己的状态发生了变化super.notifyObservers(price);//通知被观察者price发生了变化}//构造方法public Hourse(int price){this.price = price;}
}
观察者代码:
package com.yeetrack.test;import java.util.Observable;
import java.util.Observer;public class HoursePriceObserver implements Observer
{private String name; //观察者自己的名字public HoursePriceObserver(String name){// TODO Auto-generated constructor stubthis.name = name;}//Observer中的update方法,如果被观察者状态发生变化,就会自动调用此方法public void update(Observable o, Object arg){// TODO Auto-generated method stubSystem.out.println(this.name+" "+arg);}
}
测试代码:
package com.yeetrack.test;public class TestObserve
{/*** @param args*/public static void main(String[] args){// TODO Auto-generated method stubHourse hourse = new Hourse(10000);HoursePriceObserver hpo1 = new HoursePriceObserver("111"); //初始化观察者1HoursePriceObserver hpo2 = new HoursePriceObserver("222"); //初始化观察者2hourse.addObserver(hpo1); //为hourse添加一个观察者hourse.addObserver(hpo2);hourse.setPrice(40000);//改动hourse的价格,观察者hpo1和hpo2会自动调用update方法。}
}
转载于:https://my.oschina.net/u/147181/blog/164893
java观察者设计模式相关推荐
- java观察者设计模式_Java中的观察者设计模式
java观察者设计模式 在本教程中,我们将讨论Observer设计模式. 观察者模式有两个主要方面- 主题和观察者 . 当我们的系统有多个对象(称为观察者)时 ,将使用一个模式,即依赖于一个特定对象( ...
- java监听设计模式(java观察者设计模式)
今天给大家分享一下观察者设计模式(监听设计模式),该模式在很多主流得框架.源码中使用率非常高.在分享之前先给大家讲一个我们使用手机的一个场景,我们都用过手机,当我们手机来电话的时候,会有各种复杂的操作 ...
- java 观察者设计模式(十六)
观察者模式(行为型) 当对象间存在一对多关系时,则使用观察者模式(Observer Pattern).比如,当一个对象被修改时,则会自动通知依赖它的对象.观察者模式属于行为型模式. 一.观察者模式介绍 ...
- java 观察者模式示例_观察者设计模式示例
java 观察者模式示例 本文是我们名为" Java设计模式 "的学院课程的一部分. 在本课程中,您将深入研究大量的设计模式,并了解如何在Java中实现和利用它们. 您将了解模式如 ...
- Java中的观察者设计模式
在本教程中,我们将讨论Observer设计模式. 观察者模式有两个主要方面- 主题和观察者 . 当我们的系统有多个对象(称为观察者)时 ,将使用一个模式,该对象依赖于一个特定对象( 主体)的状态 . ...
- java 观察者模式示例_Java中的观察者设计模式-示例教程
java 观察者模式示例 观察者模式是行为设计模式之一 . 当您对对象的状态感兴趣并希望在发生任何更改时得到通知时,观察者设计模式很有用. 在观察者模式中,监视另一个对象状态的对象称为Observer ...
- Java中的观察者设计模式-示例教程
观察者模式是行为设计模式之一 . 当您对对象的状态感兴趣并希望在发生任何更改时得到通知时,观察者设计模式很有用. 在观察者模式中,监视另一个对象状态的对象称为Observer ,而正在监视的对象称为S ...
- 观察者设计模式 Vs 事件委托(java)
观察者设计模式 Vs 事件委托 标签: 设计模式 java 事件的委托 转载请注明原博客地址: http://blog.csdn.net/gdutxiaoxu/article/details/5182 ...
- 设计模式: 自己手动实现一个观察者设计模式
观察者模式: 定义了对象之间的一对多依赖,这样一来.当一个对象(被观察者)改变状态时,它的全部依赖者(观察者)都会收到通知并自己主动更新. 在观察者模式中,会改变的是主题的状态,以及观察者的数目和类型 ...
最新文章
- python 删除字符串中的所有相邻的重复项
- jakarta ee_Jakarta EE贡献–入门
- xvid 详解 代码分析 编译等
- 【LeetCode】【HOT】101. 对称二叉树(BFS+队列/递归)
- 修改sqlserver编码为utf8_修改Matlab默认编码格式为UTF-8
- RabbitMQ实例教程:用Java搞定工作队列
- 系统集成项目管理工程师计算题(案例计算题、挣值分析、EAC、ETC)
- MFC控件与变量的关联和值传递的方法
- 旧版的rust怎么老是掉线_RUST服务器进不去 RUST掉线用什么加速器解决?
- 无源贴片晶振四角引脚_有源晶振四个脚是如何定义的
- 软考计算机英语词汇,软考计算机专业英语常用词汇(字母D-E)
- 前端基础----html初识、常用标签
- 「机械工程」力矩,转矩,扭矩的理解
- 前端开发社区,前端校招面试题及解析大全
- GraphQL初探:Java服务示例及Yahoo/Elide
- NUC977 烧录uboot到 SPI flash
- excel多表数据汇总
- Python 网络爬虫工具:httpx 和 parsel(对比测评)
- mysql 获得元素的数量_一个递归获取祖先元素值的MySQL函数范例
- 刘汝佳蓝书后缀数组模板解释及补全