zoukankan      html  css  js  c++  java
  • 吴裕雄--天生自然java开发常用类库学习笔记:观察者设计模式

    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) ;    // 输出房子价格
        }
    };
  • 相关阅读:
    实现 AD 采样,使用 LCD1602 显示 AD 数值
    数据结构(C语言)—排序
    Keil uVision4 创建51单片机工程
    51单片机 方波
    51单片机串口中断实验
    51单片机 中断控制蜂鸣器
    串口通信
    定时器与计数器
    中断系统
    《web前端设计基础——HTML5、CSS3、JavaScript》 张树明版 简答题简单整理
  • 原文地址:https://www.cnblogs.com/tszr/p/12152944.html
Copyright © 2011-2022 走看看