CodeEase架构设计与重构@IT·互联网

知识整理NO.2-观察者模式(Observer)

2016-07-09  本文已影响148人  践行者

观察者模式Observer

u=4133387865,15189042&fm=21&gp=0.jpg

背景

1.概述

一些面向对象的编程方式,提供了一种构建对象间复杂网络互连的能力。当对象们连接在一起时,它们就可以相互提供服务和信息。
通常来说,当某个对象的状态发生改变时,你仍然需要对象之间能互相通信。但是出于各种原因,你也许并不愿意因为代码环境的改变而对代码做大的修改。也许,你只想根据你的具体应用环境而改进通信代码。或者,你只想简单的重新构造通信代码来避免类和类之间的相互依赖与相互从属。

2.问题

当一个对象的状态发生改变时,你如何通知其他对象?是否需要一个动态方案――一个就像允许脚本的执行一样,允许自由连接的方案?

3.解决方案

观察模式:定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时, 所有依赖于它的对象都得到通知并被自动更新。

剖析

1.意图

2.定义

3.本质

UML

observeUML.png

UML解读

例子

obserbeExample.png

场景

优缺点

优点

缺点

模式解读

经验法则

分类

注意点

扩展

上一篇 下一篇

猜你喜欢

热点阅读