观察者模式(Observer)

意图

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

适用性

在以下任一情况下可以使用观察者模式:

示例一:订阅微信公众号

以微信公众号为例,假设微信用户就是观察者,微信公众号是被观察者,有多个微信用户关注了“程序员”这个公众号,当这个公众号更新时就会通知这些订阅的微信用户。

1567512205454

示例二:通用源代码

1567512227968

示例三:老板回来了

1567512257458

示例四:组队战斗,遭受敌人攻击时通知队友

1567512285258