• 观察者设计模式


      观察者设计模式是一个非常有意思的设计模式,可以理解为一触即发。

      如果要想实现观察者设计模式需要以下的两个类:

        观察者:java.util.Observer;

        被观察者:java.util.Observable

    范例:实现观察者

     1 package cn.Tony.demo;
     2 
     3 import java.util.Observable;
     4 import java.util.Observer;
     5 
     6 class Person implements Observer{//这些是所有的观察者
     7     @Override
     8     public void update(Observable o, Object arg) {//一旦你关注的事情发生了变化
     9         if(o instanceof House) {
    10             if(arg instanceof Double) {
    11                 System.out.println("【人们关注房子】房价上涨,新价格:"+arg);
    12             }
    13         }
    14     }
    15 }
    16 class House extends Observable{//被观察者
    17     private double price;
    18     public House(double price) {
    19         this.price=price;
    20     }
    21     public void setPrice(double price) {
    22         if(price>this.price) {//价格上涨了
    23             super.setChanged();//现在关注的内容改变
    24             super.notifyObservers(price);//唤醒所有的观察者
    25         }
    26         this.price=price;
    27     }
    28 }
    29 public class TestDemo {
    30     public static void main(String[] args) throws Exception {
    31         Person pA=new Person();
    32         Person pB=new Person();
    33         Person pC=new Person();
    34         House house=new House(80000.00);
    35         house.addObserver(pA);//必须手工设置观察者
    36         house.addObserver(pB);//必须手工设置观察者
    37         house.addObserver(pC);//必须手工设置观察者
    38         house.setPrice(150000.00);
    39     }
    40 }

      这种设计模式在现在的开发中已经意义不大了

      理解一种设计模式。观察者是一个设计模式。

  • 相关阅读:
    线程池的状态整理
    线程池 ThreadPoolExecutor 源码整理
    ReentrantReadWriteLock 源码分析
    ReentrantLock 锁释放源码分析
    编译Hadoop源码
    Ubuntu安装secureCRT
    ubuntu中为hive配置远程MYSQL database
    解决Ubuntu下sublime3无法输入中文
    Ubuntu下安装PAC Manager
    Git起步--git安装与初次运行git前配置
  • 原文地址:https://www.cnblogs.com/Tony98/p/10500261.html
Copyright © 2020-2023  润新知