zoukankan      html  css  js  c++  java
  • 很有用的观察者设计模式

     

    [代码][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    

     

  • 相关阅读:
    [置顶] Blender 三维绘图及渲染软件 (开源优秀强大跨平台)
    观察力训练(福尔摩斯演绎法)
    Shiro 权限框架使用总结
    [置顶] 如何编写出优美的 JavaScript 代码
    TopCoder 入门教程 sqybi完善版
    开源 3D CAD 软件 gCAD3D 1.9.1 发布
    Java 局部内部类访问局部变量必须加 final 关键字
    [置顶] 程序员如何做出“不难看”的设计
    JavaFX DirectoryChooser[目录选择器]使用实例及源代码[图文]
    项目管理软件收集
  • 原文地址:https://www.cnblogs.com/fx2008/p/4086792.html
Copyright © 2011-2022 走看看