ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
## 观察者模式 ### 定义对象间一种一对多的依赖关系,使得当下一个对象改变状态,则所有依赖它的对象都会得到通知并自动更新,也叫做发布订阅模式。 ### ## 应用场景 ### 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) ### 在这个案例当中老板一动则所有观察者都能收到消息并作出动作 这就是所谓的观察者模式