zoukankan      html  css  js  c++  java
  • 设计模式-观察者模式

    //被监听的类继承Observable类

    public class Product extends Observable{

      private String name;

      private float price;

      public void setName(String name){

        this.name = name;

        setChanged();

        notifyObservalble(name);

      }

      public String getName(){

        return name;

      }

      public void setPrice(float price){

        this.price = price;

        setChanged();

        notifyObservables(new Float(price));

      }

      public Float getPrice(){

        return price; 

      }

    }

    观察者实现Observer

    实现update方法

    //价格的观察者

    NameObserver类

    private String name;

    public void update(Observable o,Object arg){

      if(arg instanceof String){

        name = (String)arg;

        System.out.println("name change to:"+name);

      }

    }

    //价格的观察者

    PriceObserver类

    private Float price;

    public void update(Observable o,Object arg){

      if(arg instanceof String){

        price= (float)arg;

        System.out.println("name change to:"+price);

      }

    }

    测试类

    public static void main(String[] args){

      Product product = new Product();

      NameObserver nameObserver = new NameObserver();

      PriceObserver priceObserver = new PriceObserver();

      product.addObserver(nameObserver);

      product.addObserver(priceObserver);

      product.setName("apple");

      product.setPrice("3.0");

      product.notifyObservers();

    }

  • 相关阅读:
    常用公共配置类——定时任务配置
    常用公共工具类——生成token
    常用公共工具类——分页工具类(IPage)
    常用公共工具类——Shiro工具类
    常用公共工具类——Redis工具类
    fmt.sprintf,fprintf区别
    web界面不显示内容排查思路
    golang值传递和引用传递
    web开发
    聊聊crd和list-watch
  • 原文地址:https://www.cnblogs.com/dcxz/p/3338878.html
Copyright © 2011-2022 走看看