zoukankan      html  css  js  c++  java
  • java学习之观察者设计模式

     1 package com.gh.observer;
     2 import java.util.Observable;
     3 /**
     4  * 被观察者对象
     5  * 必须继承被观察者抽象类
     6  * @author ganhang
     7  *
     8  */
     9 public class Doll extends Observable{
    10     private int price;
    11     
    12     public int getPrice() {
    13         return price;
    14     }
    15 
    16     public void setPrice(int price) {
    17         this.price = price;
    18         this.setChanged();
    19         this.notifyObservers();
    20     }
    21     
    22 }
     1 package com.gh.observer;
     2 
     3 import java.util.Observable;
     4 import java.util.Observer;
     5 
     6 /**
     7  * 观察者对象
     8  * 必须实现观察者的接口
     9  * @author ganhang
    10  *
    11  */
    12 public class Person implements Observer{
    13     private String name;
    14     
    15     public Person(String name){
    16         this.name=name;
    17     }
    18     public void update(Observable o, Object arg) {
    19         if(o instanceof Doll){
    20             Doll doll=(Doll) o;
    21             System.out.println(name+"您关注的娃娃价格已经更新为"+doll.getPrice());
    22         }
    23     }
    24 
    25 }
    package com.gh.observer;
    /**
     * 观察者模式的测试
     * @author ganhang
     */
    public class test {
        public static void main(String[] args) {
            Person p=new Person("小白");
            Person p1=new Person("小黑");
            Doll doll=new Doll();
            doll.addObserver(p);//将观察者添加到被观察者的集合中
            doll.addObserver(p1);
            System.out.println("第一轮促销");
            doll.setPrice(1999);
            System.out.println("第二轮促销");
            doll.deleteObserver(p1);
            doll.setPrice(999);
        }
    }

    输出

    第一轮促销
    小黑您关注的娃娃价格已经更新为1999
    小白您关注的娃娃价格已经更新为1999
    第二轮促销
    小白您关注的娃娃价格已经更新为999

  • 相关阅读:
    Filecoin:一种去中心化的存储网络(二)
    Filecoin:一种去中心化的存储网络(一)
    HTTP
    数据结构中的查找
    剑指offer-高质量的代码
    C++中STL容器的比较
    PBFT算法的相关问题
    springmvc最全约束
    springmvc入门(一)
    spring入门(一)
  • 原文地址:https://www.cnblogs.com/ganhang-acm/p/5154377.html
Copyright © 2011-2022 走看看