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();

    }

  • 相关阅读:
    SAP BW维护项目中的常见问题 沧海
    从印度英语想到creole 沧海
    侃State模式
    住在“天堂”的代价一个工薪阶层买房的感受
    家庭财务总管软件设计
    侃观察者模式(Observer)
    软件设计起步:画UML类图
    一个提醒软件---好朋友
    学习设计模式的一些心得
    一次偶然结对编程的感受
  • 原文地址:https://www.cnblogs.com/dcxz/p/3338878.html
Copyright © 2011-2022 走看看