zoukankan      html  css  js  c++  java
  • 使用Util包下的观察者模型

    import java.util.* ;
    class House extends Observable{    // 表示房子可以被观察
    private float price ;// 价钱
    public House(float price){
    this.price = price ;
    }
    public float getPrice(){
    return this.price ;
    }
    public void setPrice(float price){
    // 每一次修改的时候都应该引起观察者的注意
    super.setChanged() ;    // 设置变化点
    super.notifyObservers(price) ;// 价格被改变
    this.price = price ;
    }
    public String toString(){
    return "房子价格为:" + this.price ;
    }
    }; 
    class HousePriceObserver implements Observer{
    private String name ;
    public HousePriceObserver(String name){    // 设置每一个购房者的名字
    this.name = name ;
    }
    public void update(Observable o,Object arg){
    if(arg instanceof Float){
    System.out.print(this.name + "观察到价格更改为:") ;
    System.out.println(((Float)arg).floatValue()) ;
    }
    }
    };
    public class ObserDemo01{
    public static void main(String args[]){
    House h = new House(1000000) ;
    HousePriceObserver hpo1 = new HousePriceObserver("购房者A") ;
    HousePriceObserver hpo2 = new HousePriceObserver("购房者B") ;
    HousePriceObserver hpo3 = new HousePriceObserver("购房者C") ;
    h.addObserver(hpo1) ;
    h.addObserver(hpo2) ;
    h.addObserver(hpo3) ;
    System.out.println(h) ;    // 输出房子价格
    h.setPrice(666666) ;    // 修改房子价格
    System.out.println(h) ;    // 输出房子价格
    }
    };
  • 相关阅读:
    网页调用手机端的方法
    文章分类和标签的数据库设计
    linux 查看进程所在目录
    php-fpm 解析
    php-fpm.conf 解析
    php-fpm 操作命令
    php 获取 post 请求体参数
    获取请求 header 中指定字段的值
    redis 限制接口访问频率
    redis 常用操作
  • 原文地址:https://www.cnblogs.com/chenxuezhouLearnProgram/p/5741534.html
Copyright © 2011-2022 走看看