## 观察者模式
###
定义对象间一种一对多的依赖关系,使得当下一个对象改变状态,则所有依赖它的对象都会得到通知并自动更新,也叫做发布订阅模式。
###
## 应用场景
###
Subject主题:持有多个观察者对象的引用,抽象主题提供了一个接口可以增加和删除观察者对象;有一个观察者数组并实现增删以及通知操作;
Observer抽象观察者:为具体观察者定一一个接口,在得到主题的通知时更新自己
ConcreteSubject具体主题:将有关状态存入具体观察者对象,在具体主题内部状态改变时,给所有登记过的观察者发出通知
ConcreteObserver具体观察者:实现抽象观察者角色所要求的更新接口,以便使本身的状态与主题的状态保持一致
###
![](https://img.kancloud.cn/ba/6f/ba6fb071ad4bb5b689db831b32358de5_2660x1018.png)
###
## 具体实现(**云效代码study-java项目当中设计模式当中有代码案例**)
###
技术⽐较厉害,因此上班不想那么⾟苦,领导⼜在周围,所以选了个好位置,⽅便监听⽼板的到来,当领导即将出现时⽼王可以⽴⻢观察到,赶紧⼯作,⽤观察者模式帮助⽼王实现这个需求
###
![](https://img.kancloud.cn/f9/be/f9be405855b36930ad21209ed7c11eeb_1897x989.png)
###
![](https://img.kancloud.cn/1c/eb/1cebcfb9404491a339c938d4931b7af1_1687x926.png)
###
![](https://img.kancloud.cn/14/61/14610bbdae0c4ac39ed725c522e0fb2c_1895x922.png)
###
![](https://img.kancloud.cn/99/f9/99f96050fdb4a15bff57ad6cefdde12d_1659x921.png)
###
![](https://img.kancloud.cn/c9/67/c967b8f38f22988227ea68306f5cdcc9_1441x935.png)
###
在这个案例当中老板一动则所有观察者都能收到消息并作出动作 这就是所谓的观察者模式
- 设计模式六大原则
- 常见的三大设计模式分类
- 创建型模式之单例模式
- 单例模式之懒汉
- 单例模式之饿汉
- 单例模式之如何选择懒汉饿汉
- 什么情况下使用单例模式
- 创建型模式之工厂模式
- 简单工厂模式
- 工厂方法模式
- 抽象工厂模式
- 创建型模式之原型模式
- 创建型模式之建造者模式
- 结构型模式之适配器模式
- 接口的适配器模式
- 类的适配器模式
- 结构型模式之桥接模式
- 结构型模式之桥接模式和适配器模式的区别
- 结构型模式之装饰器模式
- 结构型模式之代理模式
- 结构模式之外观模式
- 结构模式之享元模式
- 行为模式之策略模式
- 行为模式之模板模式
- 行为模式之观察者模式
- 行为模式之责任链模式
- 行为模式之命令模式
- 行为模式之迭代器模式
- 行为模式之备忘录模式
- 行为模式之状态模式