定义

The Observer pattern defines a one-to-many dependency between objects so that when one changes state, all of its dependents are notified and updated automatically.

观察者模式定义了对象之间的一对多的依赖关系,这样当一个对象的状态发生改变时,依赖它的那些对象将会被通知到,会自动更新自己的状态.

 

说明

观察者(Observer)模式又名发布-订阅(Publish/Subscribe)模式。做软件开发的经常会订阅邮件列表,这其实也是一种观察者(Observer)模式。JavaAPI提供了对这一模式的原生支持,为我们提供了Observer接口和Observable类来实现所谓观察者模式。

图示

设计模式学习02-观察者模式

 

使用Java内置的模式

主题类

 1设计模式学习02-观察者模式import java.util.Observable;
 2设计模式学习02-观察者模式
 3

 

观察者类1

 1 package com.ztgame.pattern;
 2 
 3 import java.util.Observable;
 4 import java.util.Observer;
 5 /**
 6  * 观察者1
 7  * 
 8  * @author sunwei
 9  * 
10  */
11 public class Observer1 implements Observer
12 {
13     @Override
14     public void update(Observable o, Object arg)
15     {
16         System.out.println("我是观察者1,我收到了我订阅的主题!");
17     }
18 }

 

观察者类2

 1 package com.ztgame.pattern;
 2 
 3 import java.util.Observable;
 4 import java.util.Observer;
 5 /**
 6  * 观察者2
 7  * 
 8  * @author sunwei
 9  * 
10  */
11 public class Observer2 implements Observer
12 {
13     @Override
14     public void update(Observable o, Object arg)
15     {
16         System.out.println("我是观察者2,我也收到了主题信息!");
17     }
18 }

 

组织协调类

 1 public class LearnOb
 2 {
 3     public static void main(String[] args)
 4     {
 5         // 主题,被观察者
 6         MyObservable observable = new MyObservable();
 7         observable.addObserver(new Observer1());
 8         observable.addObserver(new Observer2());
 9         observable.setName("changed");
10     }
11 }

 


相关文章:

  • 2021-10-31
  • 2022-01-05
  • 2021-12-24
  • 2021-06-20
  • 2021-06-13
  • 2021-06-30
  • 2021-08-06
  • 2021-08-27
猜你喜欢
  • 2021-12-16
  • 2021-11-24
  • 2021-10-09
  • 2021-11-28
  • 2022-01-01
相关资源
相似解决方案