很有用的观察者设计模式

[代码][Java]代码

?


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

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();          //设置变化点

        super.notifyObservers(price);  //发出变化通知

        this.price = price;

    }

    @Override

    public String toString() {

        return "房子的价格为:" + price ;

    }

    

}

2. [代码][Java]代码

?


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

import java.util.Observable;

import java.util.Observer;

public class Buyer implements Observer{

    

    private String name;

    

    public Buyer(String name) {

        this.name = name;

    }

    @Override

    public void update(Observable observable, Object object) {

        if (object instanceof Float) {

            System.out.print(this.name + "观察到价格变化:");

            System.out.println(((Float)object).floatValue());

        }

    }

3. [代码][Java]代码

?


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

public class TestMain {

    /**

     * @param args

     */

    public static void main(String[] args) {

        House house = new House(1000f);

        Buyer b1 = new Buyer("A");

        Buyer b2 = new Buyer("B");

        Buyer b3 = new Buyer("C");

        house.addObserver(b1);

        house.addObserver(b2);

        house.addObserver(b3);

        System.out.println(house);

        house.setPrice(6000.0f);

        System.out.println(house);

    }

}

4. [图片] 未命名.png

时间: 2024-07-28 23:34:58

很有用的观察者设计模式的相关文章

观察者设计模式 Vs 事件委托(java)

观察者设计模式 Vs 事件委托 转载请注明原博客地址: http://blog.csdn.net/gdutxiaoxu/article/details/51824769 源码下载地址: http://download.csdn.net/detail/gdutxiaoxu/9567209 本篇博客主要讲解一下几个问题 什么是观察者模式 观察者模式的优缺点 如何看待观察者模式的缺点 事件的委托 什么是观察者模式 简单来说,当有多个观察者想同时观察同一个主题对象的时候,当主题对象的 状态发生变化,观察

iOS常用设计模式——观察者设计模式

观察者设计模式详解 观察者设计模式详解 基本概念 NSNotificationCenter的使用 添加监听 接收消息 删除监视 KVO的使用 基本概念 注册观察者 观察者对象发生变化时的回调方法 remove观察者身份 代码实现 基本概念 观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象.这个主题对象在状态发生变化时,会通知所有观察者对象,使它们能够自动更新自己.而在IOS开发中我们可能会接触到的经典观察者模式的实现方式,有这么几种:NSNotificationCen

JAVA设计模式——观察者设计模式和Reactor反应堆设计模式

被观察者(主题)接口 定义主题对象接口 /**抽象主题角色: 这个主题对象在状态上发生变化时,会通知所有观察者对象 也叫事件对象 */ public interface Subject { //增加一个观察者 public void addWatcher(Watcher watcher); //删除一个观察者 public void removeWatcher(Watcher watcher); //通知所有的观察者 public void notifyWatchers(String str);

对于Linux系统管理员很有用的16个在线工具

1. ExplainShell.com 命令解释 ??对于Linux用户来说每天都会写各种命令和脚本,那么你可以使用这个网站工具来查看命令式如何工作的,这样可以避免不必要的错误出现:也是一个很好的学习命令的方式 2. BashrcGenerator.com 定制个性命令提示符 ??简单说就是个性化生成命令提示符,可将生成的代码写入到用户家目录的.bashrc或者可以设置全局变量文件/etc/profile对所有用户生效 ??可参考:http://stackoverflow.com/questio

Web 开发中 20 个很有用的 CSS 库

转自:http://www.oschina.net/translate/css-libraries-for-developers 在过去的几年中,CSS已经成为一大部分开发者和设计者的最爱,因为它提供了一系列功能和特性.每个月都有无数个围绕CSS的工具被开发者发布以简化WEB开发.像CSS 库,框架,应用这样的工具能够为开发者做很多事,而且可以使开发者创造出创新立异的WEB应用. 在这篇文件章中我们找到了一系列对开发者有用的CSS库,它们能帮助开发者在一定的期限内取得有创造性和创新性的成果.我们

观察者设计模式

/** * 事件接口即被观察者 * * @author Host * */ publicinterface Event { void attach(Listener listener); void detach(Listener listener); void notifyListener(); } /** * 事件监听者观察者 * * @author Host * */ publicinterface Listener { void execute(); } 事件源的一个实现类(磁盘事件) p

(java)从零开始之--观察者设计模式Observer

观察者设计模式:时当一个对象发生指定的动作时,要通过另外的对象做出相应的处理. 步骤: 1. A对象发生指定的动作是,要通知B,C,D...对象做出相应的处理,这时候应该把B,C,D...对象针对A对象的动作做出的相应处理方法定义在接口上(这是一种规范,凡事需要A对象通知的对象,都要实现该接口). 2. 在A对象维护接口的引用,当A对象发生指定的动作这时候即可调用接口中的方法. 观察者模式的应用场景: 1. 对一个对象状态的更新,需要其他对象同步更新,而且其他对象的数量动态可变. 2.对象仅需要

19个很有用的 JavaScript库推荐

流行的 JavaScript 库有jQuery,MooTools,Prototype,Dojo和YUI等,这些 JavaScript 库功能丰富,加上它们众多的插件,几乎能实现任何你需要的功能 然而需要实现一些特定的功能,则可以选择功能更专一的轻量库,今天这篇文章与大家分享16个很有用的 JavaScript 库. Blackbird: Open Source JavaScript Logging UtilityBlackbird 是一款非常酷的 JavaScript 调试工具,带有一个漂亮的界

监听器和 利 用观察者设计模式设计一个程序

一.监听器概念 1.事件源:发生事件的对象. 2.监听器:是一个接口,监听事件源上要发生的动作 3.事件:事件对象一般是作为监听器方法的参数存在的,它封装了发生事件的对象 二.Servlet中提供的监听器(8个) 八个监听器分类: 2.1监听ServletContext.HttpSession.ServletRequest对象的创建和销毁的监听器. ServletContextListener:监听ServletContext对象的创建和销毁. HttpSessionListener:监听Htt