用java代码实现观察者模式

原创 2015年11月17日 22:29:25

/*
用java代码实现观察者模式,

前台负责观察老板在办公室还是离开并通知大家,
用观察者模式实现这一过程,请实现Guard类。
使最终输出结果为:
“老板在办公室”  
“前台通知大家:老板离开了”
“前台通知大家:老板回来了”

*/


//被观察的对象。


import java.util.Observable;

class Boss extends Observable {
    private String name;
    private String state;

    public Boss(String name, String state) {
        this.name = name;
        this.state = state;
    }

    public String getName() {
        return name;
    }

    public String getState() {
        this.notifyObservers(state);
        System.out.println(getName() + state);
        return state;
    }

    public void setState(String state) {
        this.state = state;
        this.setChanged();
        this.notifyObservers(state);

    }
}


//观察者

package StaticHao;

import java.util.Observable;
import java.util.Observer;

class Guard implements Observer{
    //观察者的状态
   private String person;
   public Guard(String person){
       this.person=person;
   }
@Override
public void update(Observable o, Object arg) {
    // TODO 自动生成的方法存根
    String state=arg.toString();
    System.out.println(person+"通知大家:老板"+state);
    
}
    
   
}


//测试类

public class ObserverTest {
    public static void main(String[] args) {
        Boss Boss = new Boss("老板", "在办公室");
        Guard guard = new Guard("前台");
        Boss.addObserver(guard);
        Boss.getState();
        Boss.setState("离开了");
        Boss.setState("回来了");
    }
}


Java设计模式——观察者模式

本文通过两个实例(分别是“气象观测站”和“计时器应用”),对Java设计模式中的观察者模式做一个详细的说明。...
  • u013761665
  • u013761665
  • 2015年11月25日 00:35
  • 15807

Java设计模式之观察者模式

本文继续介绍23种设计模式系列。介绍的是观察者模式。
  • jason0539
  • jason0539
  • 2015年04月16日 07:32
  • 30616

观察者模式II--Java原生实现分析以及一种全新的观察者模式

分析传统观察者模式的不足以及JAVA原生观察者的缺陷,通过使用Map唯一的去确定每个观察者的身份,添加动态精确控制观察者行为的逻辑....
  • geekerhw
  • geekerhw
  • 2016年07月29日 17:35
  • 725

java设计模式--观察者模式和事件监听器模式

监听器模式:事件源经过事件的封装传给监听器,当事件源触发事件后,监听器接收到事件对象可以回调事件的方法 观察者模式:观察者(Observer)相当于事件监听者,被观察者(Observable)相当于事...
  • dongnan591172113
  • dongnan591172113
  • 2013年04月08日 11:18
  • 43200

Java设计模式之Observer(观察者)模式

Java设计模式之Observer(观察者)模式 目录 TOC /o "1-3" /h /z 目录...
  • ForeverSeaStar
  • ForeverSeaStar
  • 2006年03月27日 11:25
  • 12030

Java_观察者模式(Observable和Observer)

一、观察者模式介绍 在Java中通过Observable类和Observer接口实现了观察者模式。一个Observer对象监视着一个Observable对象的变化,当Observable对象...
  • tianjf0514
  • tianjf0514
  • 2012年04月18日 21:59
  • 33870

Java中的观察者模式详解

Java中的观察者模式详解 用一个日常中的杂志出版社和杂志订阅者来说明观察者模式是如何工作的。 有n个用户订阅同一类型的某个杂志,比如说读者文摘,用户怎样知道读者文摘更新了呢?用户不可能时刻的去询问...
  • u013309870
  • u013309870
  • 2016年08月11日 10:21
  • 424

Java内置观察者模式

之前也简单地写过观察者模式(又称为发布-订阅模式)小例子,现在项目中也常用到该模式。今天贴一下如何使用Java内置的观察者模式。 主要使用到的Java API就两个类:Observer接口:观察者对象...
  • true100
  • true100
  • 2016年11月02日 09:56
  • 1507

观察者模式代码

  • 2012年02月26日 15:52
  • 2KB
  • 下载

观察者模式代码

  • 2012年12月23日 20:34
  • 36KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:用java代码实现观察者模式
举报原因:
原因补充:

(最多只允许输入30个字)