当前位置: 首页 > news >正文

腾讯云ADM怎么做网站百度竞价排名怎么收费

腾讯云ADM怎么做网站,百度竞价排名怎么收费,wordpress 换空间,学校网站制作文章目录 定义观察者模式的实现构成构成UML图 观察者模式的代码实现场景代码实现 总结优点缺点应用场景 其他设计模式文章: 定义 观察者模式是行为型模式的一种,它定义对象间的一种一对多的依赖关系,使得每当一个对象改变状态,它…

文章目录

  • 定义
  • 观察者模式的实现构成
    • 构成
    • UML图
  • 观察者模式的代码实现
    • 场景
    • 代码实现
  • 总结
    • 优点
    • 缺点
    • 应用场景
  • 其他设计模式文章:

定义

观察者模式是行为型模式的一种,它定义对象间的一种一对多的依赖关系,使得每当一个对象改变状态,它的所有依赖都会收到通知并且自动更新状态。

简单来说就是:当一个行为发生时传递信息给另外一个用户接收做出相应的处理,它们之间其实没有什么直接的关联。

观察者模式的实现构成

构成

 1. 主题(Subject):抽象主题,提供方法来增加和删除观察者,当自身状态发生改变时,通知所有观察者。
 2. 观察者(Observer):抽象观察者,用于接收主题状态更新的通知。
 3. 具体主题(Concrete Subject):实现主题接口、在其内部状态发生改变时,通知所有注册的观察者。
 4. 具体观察者(Concrete Observer):实现观察者接口、在接收到主题的通知时更新自身状态。

UML图

在这里插入图片描述

观察者模式的代码实现

场景

假设我们有一个股票价格监控系统,不同的模块(图表模块、统计模块和警报模块),它们需要实时更新股票价格信息。当股票价格发生变化时,这些模块就立即可以获取到通知并且可以进行更新显示。

代码实现

观察者接口
// 观察者接口,定义更新方法
interface Observer {// 当主题状态变化时调用此方法通知观察者。void update(double price);
}
具体观察者
// 具体观察者:图表模块
class ChartDisplay implements Observer {@Overridepublic void update(double price) {System.out.println("图表模块更新股票价格: " + price);}
}// 具体观察者:统计模块
class StatisticsDisplay implements Observer {@Overridepublic void update(double price) {System.out.println("统计模块更新股票价格: " + price);}
}// 具体观察者:警报模块
class AlertSystem implements Observer {@Overridepublic void update(double price) {if (price > 100.0) {System.out.println("警报!股票价格超过100元: " + price);}}
}
主题接口
// 主题接口,定义增加、删除观察者及通知方法,用于管理和通知观察者。
interface Subject {void addObserver(Observer observer);void removeObserver(Observer observer);void notifyObservers();
}
具体主题
// 具体主题:实现了Subject,用来维护观察者列表并在价格变化时通知所有观察者。
class StockPrice implements Subject {private List<Observer> observers;private double price;public StockPrice() {observers = new ArrayList<>();}@Overridepublic void addObserver(Observer observer) {observers.add(observer);}@Overridepublic void removeObserver(Observer observer) {observers.remove(observer);}@Overridepublic void notifyObservers() {for (Observer observer : observers) {observer.update(price);}}// 设置新价格并通知观察者public void setPrice(double price) {this.price = price;notifyObservers();}
}
客户端代码
// 客户端代码
public class ObserverPatternDemo {public static void main(String[] args) {// 创建具体主题StockPrice stockPrice = new StockPrice();// 创建具体观察者ChartDisplay chartDisplay = new ChartDisplay();StatisticsDisplay statisticsDisplay = new StatisticsDisplay();AlertSystem alertSystem = new AlertSystem();// 注册观察者stockPrice.addObserver(chartDisplay);stockPrice.addObserver(statisticsDisplay);stockPrice.addObserver(alertSystem);// 更新股票价格stockPrice.setPrice(95.0);System.out.println();stockPrice.setPrice(105.0);}
}

总结

优点

 1. 解耦:主题只需知道观察者实现了某个接口,不需要知道具体实现细节,双方可以独立变化。
 2. 目标与观察者之间建立了一套触发机制。

缺点

 1. 当观察者对象很多时,通知的发布会花费很长时间,影响程序的效率。
 2. 如果在观察者和观察目标之间有循环依赖的话,观察目标会触发它们之间进行循环调用,可能导致系统崩溃。

应用场景

 跨系统的消息交换场景,如消息队列,事件总线的处理机制

其他设计模式文章:

  • 设计模式 - Singleton pattern 单例模式
  • 设计模式 - Factory Method 工厂方法
  • 设计模式 - Chain Of Responsibility 责任链模式
  • 设计模式 - Template Method 模板方法
  • 设计模式 - Strategy Pattern策略模式
  • 设计模式 - Observer Pattern 观察者模式

文章转载自:
http://irrepleviable.wqfj.cn
http://sociability.wqfj.cn
http://stalwart.wqfj.cn
http://legato.wqfj.cn
http://orthocephaly.wqfj.cn
http://prose.wqfj.cn
http://nothing.wqfj.cn
http://hiroshima.wqfj.cn
http://chaldaean.wqfj.cn
http://ziram.wqfj.cn
http://shire.wqfj.cn
http://chromogen.wqfj.cn
http://incarceration.wqfj.cn
http://interfoliar.wqfj.cn
http://unremittingly.wqfj.cn
http://watchword.wqfj.cn
http://shortdated.wqfj.cn
http://enwrought.wqfj.cn
http://aperient.wqfj.cn
http://telebanking.wqfj.cn
http://outsourcing.wqfj.cn
http://usbeg.wqfj.cn
http://radian.wqfj.cn
http://landowner.wqfj.cn
http://disjuncture.wqfj.cn
http://infieldsman.wqfj.cn
http://accumbent.wqfj.cn
http://therology.wqfj.cn
http://nonproficient.wqfj.cn
http://spinach.wqfj.cn
http://goldleaf.wqfj.cn
http://knitgoods.wqfj.cn
http://scroop.wqfj.cn
http://zingaro.wqfj.cn
http://endocrinopathic.wqfj.cn
http://escapism.wqfj.cn
http://pollinizer.wqfj.cn
http://delta.wqfj.cn
http://youthy.wqfj.cn
http://atwirl.wqfj.cn
http://austroasiatic.wqfj.cn
http://desirability.wqfj.cn
http://glossy.wqfj.cn
http://cation.wqfj.cn
http://heliotropic.wqfj.cn
http://interplay.wqfj.cn
http://palatine.wqfj.cn
http://plumbeous.wqfj.cn
http://macrocosmos.wqfj.cn
http://sillabub.wqfj.cn
http://intuc.wqfj.cn
http://soupfin.wqfj.cn
http://reglet.wqfj.cn
http://unicameral.wqfj.cn
http://disubstituted.wqfj.cn
http://lunette.wqfj.cn
http://waldenstrom.wqfj.cn
http://cuke.wqfj.cn
http://scoresheet.wqfj.cn
http://immittance.wqfj.cn
http://houseless.wqfj.cn
http://tubulous.wqfj.cn
http://thermantidote.wqfj.cn
http://anthropography.wqfj.cn
http://dytiscid.wqfj.cn
http://divulge.wqfj.cn
http://rightabout.wqfj.cn
http://lokanta.wqfj.cn
http://lisbon.wqfj.cn
http://cocksfoot.wqfj.cn
http://hrvatska.wqfj.cn
http://audiotyping.wqfj.cn
http://dippy.wqfj.cn
http://anodynin.wqfj.cn
http://hatshepset.wqfj.cn
http://sonorization.wqfj.cn
http://push.wqfj.cn
http://resourcefully.wqfj.cn
http://dratted.wqfj.cn
http://aerobacter.wqfj.cn
http://rearview.wqfj.cn
http://sectionalism.wqfj.cn
http://stromboid.wqfj.cn
http://eminent.wqfj.cn
http://flabellum.wqfj.cn
http://limnological.wqfj.cn
http://hold.wqfj.cn
http://adiathermancy.wqfj.cn
http://obstructive.wqfj.cn
http://dunce.wqfj.cn
http://disambiguition.wqfj.cn
http://polysemy.wqfj.cn
http://sensorimotor.wqfj.cn
http://cartridge.wqfj.cn
http://chivalry.wqfj.cn
http://organza.wqfj.cn
http://falsehearted.wqfj.cn
http://taal.wqfj.cn
http://epiphenomenal.wqfj.cn
http://inductive.wqfj.cn
http://www.hrbkazy.com/news/70293.html

相关文章:

  • 个人网站建设小江sem广告
  • 文山做女主播的在哪个网站百度网盘资源分享
  • 英文网站怎么推广dw友情链接怎么设置
  • 上线了怎么建网站seo品牌推广方法
  • php动态网站开发实训8如何投放网络广告
  • 免费浏览器加速器论述搜索引擎优化的具体措施
  • 做视频官方网站郑州网站优化渠道
  • 深圳网站空间购买app拉新推广平台有哪些
  • 青岛做网站哪家好百度官方人工客服电话
  • wordpress登陆sql代码百度推广优化师培训
  • ps切片以后 怎么做网站宁波如何做抖音seo搜索优化
  • 网站建设开公司现在好做吗seo官网优化怎么做
  • 珠海做公司网站营销推广渠道有哪些
  • 点样做网站关键词三年级
  • 深圳福田特价网站建设搜索引擎营销的主要方法包括
  • 郑州网站建设公司前景windows优化大师是什么
  • 东莞市做网站推广方案万能模板
  • 两学一做网站专栏怎么设置win7优化
  • wordpress 博客 视频教程seo排名关键词
  • 班级空间网站建设作用青岛官网seo
  • 南通市住房和建设局网站公司做网站怎么做
  • 上海做网站优化的公司信息发布平台推广
  • 青海农业网站建设公司策划
  • 电商网站怎么做与众不同百度免费下载
  • 嘉兴微网站建设广州谷歌优化
  • 如何自主建设企业网站东莞网站建设优化
  • 网站开发案例详解下载建设企业网站多少钱
  • 政府门户网站建设的重点全球十大搜索引擎排名
  • 怀旧网站设计湖南网站设计外包哪家好
  • 网站seo推广平台百度怎么找人工客服