观察者模式
定义对象间一种一对多的关系,使得当一个对象改变状态,则所有依赖于它的对象都会得到通知,并
自动更新,也叫发布订阅模式Publish/Subscribe,属于行为模型。
应用场景
消息通知:邮件通知、广播通知、微信朋友圈;
当一个对象改变的同时需要改变其他对象,此时可以考虑观察者模式。
角色
subject主题:持有多个观察者的引用,封装了添加、删除观察者的方法,并实现通知观察者的方法;
Observer:抽象观察者,得到通知时做出操作;
ConcreteSubject:具体消息发布者,给所有观察者发出通知;
ConcreteObserve:具体观察者,得到通知时做出相应;
优点
降低了目标与观察者之间的耦合关系,目标与观察者之间建立了一套触发机制;
观察者和被观察者之间是抽象耦合的;
缺点
观察者和目标之间有循环引用的话,会触发他们之间进行循环引用,可能导致系统崩溃;
目标拥有很多观察者时,通知每个观察者会花费很多时间;
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理