首页 > Observer Pattern 观察者模式

Observer Pattern 观察者模式

Observer Pattern (观察者模式)

定义:

《设计模式》中对Observer模式的意图是这样描述的:“定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都将得到通知并且自动更新”。

The Observer Pattern defines a one-to-many relationship between a set of objects. When the state of one objects changes, all of its dependents are notified.

这个模式就好像是,报纸的发行方和报纸的订购者的关系,如下:

Publishers + Subscribers = Observer Pattern

上图中:

1.       用户1,2,3订阅了报社的报纸;

2.       报社出版新报纸后,就会给用户1,2,3邮寄新的报纸;

3.       用户3取消了报纸订购业务;

4.       报社出版新的报纸之后,依旧给用户1,2邮寄新的报纸,不会给用户3再寄报纸;

 

理解了publisher subscribers之后,理解监听者模式就不难了。只是我们在Observer模式中,两者分别叫做 SUBJECT OBSERVERS, 如下:

SUBJECT + OBSERVERS = Observer Pattern.

UML 图如下:

 

 

 

更多相关:

  • 再次重申awk的语法 awk [options] ‘Pattern {Actions}’ file1,file2… awk模式,在之前的文章中简单使用了BEGIN和END。这里的模式,其实我们可以理解成是条件,awk是一行行处理数据的,如果满足某个条件awk就处理某一行数据,如果不满足就不处理,这就可以理解成模式。 意思就...

  • 一. vim的三种模式 在Linux操作系统下,我们一般会使用vim进行文本编辑,它相当于Windows下的记事本,但是它比记事本的功能强大的多。vim一般有三种模式分别是普通模式,编辑模式和命令模式。普通模式和编辑模式可以来回的切换,普通模式可以和命令模式来回的切换,但是编辑模式和命令模式不能来回的切换。 二. vim三种模...

  • 注意事项 1、U盘要是USB3.0的U盘,否则基本会失败 安装到最后的时候报一个 cd/dvd 设备 low speed的故障 2、bios 设置 硬盘模式 选择 AHCImode 模式, 否则刷机不成功 3、 U盘镜像的烧录方式, 实测windows 下的rufus工具有效...

  • linux 设置分辨率 如果你需要在linux上设置显示屏的分辨率,分两种情况:分辨率模式存在与分辨率模式不存在,具体如下。 1,分辨率模式已存在 1)如何查询是否存在: 图形界面:在System Settings/Displays/Resolution栏查看下拉列表。 控制台:在控制台输入命令:xrandr,即会输出当前已存...

  •   Bulk加载模式是Informatica提供的一种高性能数据加载模式,它利用数据库底层机制,依靠调用数据库本身提供的Utility来进行数据的加载  该方式将绕过数据库的log记录,以此提高数据库加载性能,因此Bulk模式不能进行数据的Rollback操作,也不可能使用数据库做Recover操作   因此当使用Bulk加载模式时...