码迷,mamicode.com
首页 > 其他好文 > 详细

观察者设计模式

时间:2019-03-09 13:04:37      阅读:150      评论:0      收藏:0      [点我收藏+]

标签:nts   public   notify   family   一个   stat   hang   手工   ext   

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

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

    观察者: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 }

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

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

观察者设计模式

标签:nts   public   notify   family   一个   stat   hang   手工   ext   

原文地址:https://www.cnblogs.com/Tony98/p/10500261.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!