CSDN热搜
比如: kafka、基于kafka的实时数仓等。
比如: nacos 配置中心,通过订阅-发布模式,客户端程序们实时获取最新配置。
它是一种行为型设计模式
比如,当一个对象被修改时,则会自动通知依赖它的对象。观察者模式属于行为型模式。
观察者模式解决的是一个对象状态改变时,如何自动通知其他依赖对象的问题,同时保持对象间的低耦合和高协作性。
它是具有状态的对象,并维护着一个观察者列表。主题提供了添加、删除和通知观察者的方法。
观察者需要实现一个更新方法,当收到主题的通知时,调用该方法进行更新操作。
它维护着观察者列表,并在状态发生改变时通知观察者。
它实现了更新方法,定义了在收到主题通知时需要执行的具体操作。
观察者模式通过将主题和观察者解耦,实现了对象之间的松耦合。 当主题的状态发生改变时,所有依赖于它的观察者们都会收到通知并进行相应的更新。
如java.util.Observable和java.util.Observer。
Subject 对象带有绑定观察者到 Client 对象和从 Client 对象解绑观察者的方法。 我们创建 Subject 类、Observer 抽象类和扩展了抽象类 Observer 的实体类。
使用 Subject 和实体观察者对象。
out
分析:当“人民币汇率”升值时,进口公司的进口产品成本降低且利润率提升,出口公司的出口产品收入降低且利润率降低;当“人民币汇率”贬值时,进口公司的进口产品成本提升且利润率降低,出口公司的出口产品收入提升且利润率提升。
即: 当人民币汇率发生改变时通过相关公司;
进口公司(ImportCompany)类和出口公司(ExportCompany)类是具体观察者类: 它们实现了父类的 response(int number) 方法 即当它们接收到汇率发生改变的通知时作为相应的反应。
即当它们接收到汇率发生改变的通知时作为相应的反应。
学生和老师来到学校的教学区,都会注意学校的铃,这叫事件绑定; 当上课时间或下课时间到,会触发铃发声,这时会生成“铃声”事件; 学生和老师听到铃声会开始上课或下课,这叫事件处理。
这个实例非常适合用观察者模式实现 上图给出了学校铃声的事件模型。
上图给出了学校铃声的事件模型。
图:学校铃声事件处理程序的结构图
使用道具 举报
本版积分规则 回帖并转播 回帖后跳转到最后一页
程序园优秀签约作者
0
粉丝关注
12
主题发布