java: 观察者模式:Observable被观察者,Observer观察者

以房子价格为例,卖房者为被观察者:

import java.util.Observable;

//被观察者子类化
public class House extends Observable { private float price; public House(float price)
{
this.price = price;
} public float getPrice() {
return price;
} public void setPrice(float price) {
//通知内容已经被修改
super.setChanged();
//一旦价格修改成功,那么应该通知观察者
this.price = price;
//通知所有观察者
super.notifyObservers(price);
} public String toString()
{
return "房子";
} }

  

买房者为观察者:

import java.util.Observable;
import java.util.Observer; //实现观察者接口
public class Person implements Observer { @Override
public void update(Observable o, Object arg) {
// TODO 自动生成的方法存根 //当被观察者发生变化,观察者立马能接受都信息
System.out.println( o + " ****** 房子的价格已经发生改变" + arg); } }

  

实例被观察者,与观察者:

public class ObserverDemo {

	public static void main(String[] args) {
// TODO 自动生成的方法存根 //实例化被观察者
House h = new House(3000.00f); //实例化观察者
Person p1 = new Person();
Person p2 = new Person();
Person p3 = new Person(); //增加观察者
h.addObserver(p1);
//增加观察者
h.addObserver(p2);
//增加观察者
h.addObserver(p3); //被观察者价格发生改变
h.setPrice(4000.00f); } }

  

java: 观察者模式:Observable被观察者,Observer观察者的更多相关文章

  1. 说说Java观察者模式

    观察者模式是对象行为模式中的一种,在平时项目中经常被用来解耦对象之间的依赖. 观察者模式定义了对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖它的对象都得到通知并自动更新.别名:De ...

  2. java中观察者模式Observable和Observer

    25.java中观察者模式Observable和Observer 如果想要实现观察者模式,则必须依靠java.util包中提供的Observable类和Observer接口 观察者设计模式 现在很多的 ...

  3. 25、java中观察者模式Observable和Observer

    如果想要实现观察者模式,则必须依靠java.util包中提供的Observable类和Observer接口 观察者设计模式 现在很多的购房者都在关注着房子的价格变化,每当房子价格变化的时候,所有的购房 ...

  4. Java中使用Observer接口和Observable类实践Observer观察者模式

    在Java中通过Observable类和Observer接口实现了观察者模式.实现Observer接口的对象是观察者,继承Observable的对象是被观察者. 1. 实现观察者模式 实现观察者模式非 ...

  5. Java 实现观察者(Observer)模式

    1. Java自带的实现 类图 /** * 观察目标 继承自 java.util.Observable * @author stone * */ public class UpdateObservab ...

  6. java观察者(Observer)模式

    观察者模式:     试想,在电子商务网站上,一个用户看中了一件一份,但是当时衣服的价格太贵,你需要将衣服收藏,以便等衣服降价时自动通知该用户.这里就是典型的观察模式的例子.     1.观察者模式的 ...

  7. Java Observer 观察者

    http://www.cnblogs.com/jaward/p/3277619.html 1.API 被观察者 java.util.Observable; public class Observabl ...

  8. Java设计模式之从[星际争霸的兵种升级]分析观察者(Observer)模式

    观察者模式定义对象的一种一对多的依赖关系.当一个对象的状态发生改变时.全部依赖于它的对象都会得到通知并被自己主动更新. 一个简单的样例是.在星际争霸的虫族中有一个0基础单位叫做跳狗(Zergling) ...

  9. Java设计模式——Observer(观察者)模式

    在多个对象之间建立一对多的关系,以便当一个对象状态改变的时候.其它全部依赖于这个对象的对象都能得到通知,并被自己主动更新. 适用情况: 当一个抽象模型有两个方面,当中一个方面依赖于还有一方面. 将这二 ...

随机推荐

  1. nosql_action

    ps -aux  查当前端口占用 connecting to: test > show dbs local .078125GB testphp .203125GB > use testph ...

  2. Constructor Acquires, Destructor Releases Resource Acquisition Is Initialization

    w https://zh.wikipedia.org/wiki/RAII RAII要求,资源的有效期与持有资源的对象的生命期严格绑定,即由对象的构造函数完成资源的分配(获取),同时由析构函数完成资源的 ...

  3. js验证表单大全2

    屏蔽右键 很酷  oncontextmenu="return false" ondragstart="return false"onselectstart=&q ...

  4. Windows Server 2012 下安装MySQL 5.6 X64位包

    WIN下的MySQL 5.6非MSI安装 查阅了官网一下,比较靠前的版本,都很少提供MSI 64位的版本,只有32位的版本,但是服务器上跑的自然是64位的系统为佳,在官网下了免编译的WIN 环境包,过 ...

  5. python函数回顾:dir()

    描述 dir() 函数不带参数时,返回当前范围内的变量.方法和定义的类型列表: 带参数时,返回参数的属性.方法列表.如果参数包含方法__dir__(),该方法将被调用. 如果参数不包含__dir__( ...

  6. Docker容器/镜像查看及删除操作

    列出所有正在运行的容器 docker ps 暂停容器 docker stop <name> 删除容器 docker rm <name> 停止所有container docker ...

  7. 修改Linux的基本配置(修改主机名修改ip地址安装JDK/Tomcat/MySQL等等)

    (一)基本操作修改 修改主机名 vi /etc/sysconfig/network NETWORKING=yes HOSTNAME=server1.itcast.cn 修改ip地址 vi /etc/s ...

  8. 003-诠释 Java 工程师【一】

    一.基础篇 1.面向对象的三大特性 继承.封装.多态 什么是继承? ①继承是面向对象程序设计能够提高软件开发效率的重要原因之一. ②继承是具有传递性的,就像现实中孙子不仅长得像爸爸而且还像他爷爷. ③ ...

  9. 解决 flex align-items:center 无法居中(微信小程序)

    因为最近再做小程序,需要用到flex布局,因为写惯了web项目,初次学习确实感弹性布局的强大(关键是不用再管可恶的ie了). 但是也遇到了align-items:center无法居中的问题,想了很久终 ...

  10. javascript;Jquery;获取JSON对象,无刷新分页,异步加载,异步删除,实例。

    AjaxNewsList: <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> < ...