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

做教案比较好的网站襄阳云平台网站建设

做教案比较好的网站,襄阳云平台网站建设,天津市最穷的四个区,商务网站建设公司哪家好文章目录 定义观察者模式的实现构成构成UML图 观察者模式的代码实现场景代码实现 总结优点缺点应用场景 其他设计模式文章#xff1a; 定义 观察者模式是行为型模式的一种#xff0c;它定义对象间的一种一对多的依赖关系#xff0c;使得每当一个对象改变状态#xff0c;它… 文章目录 定义观察者模式的实现构成构成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 ListObserver 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://www.hkea.cn/news/14394768/

相关文章:

  • dedecms医院网站wap模板(橙色)证书兼职网
  • 网站标题怎么改wordpress设置新浪邮箱
  • 图片分类展示网站源码如何建设一个自己的网站
  • 可以做来电名片的网站wordpress冷门二次元主题
  • 清远市网站建设iis 5 如何添加网站
  • 学校网站开发与实现的解决思路做视频网站的服务器
  • 怎么编程一个网站百度做营销网站多少钱
  • 新西兰网站建设厦门集团网站建设
  • 聊城做网站低费用想自己弄个app商城
  • 做农家乐农产品旅游的网站顺德手机网站设计信息
  • 哪个网站做婚礼邀请函好做预约的网站
  • 做网站的资金来源qq代刷网站推广免费
  • 优惠券网站怎么做的在线购物网站设计
  • 网站建设公司发展方向及趋势网页制作价格表
  • 陕西省西安市制作网站wordpress apache 伪静态
  • 桂林北站地图台州做网站公司
  • 如何做带后台的网站wordpress宠物插件
  • 毕业设计做网站可以用模版吗angular做的网站大全
  • 机关网站建设需求文档搜索引擎优化的英文缩写
  • 网站按钮psd电商营业执照
  • 名师工作室建设网站用excel可以做网站
  • 平价建网站如何去推广自己的产品
  • 哈尔滨网站制作哪家好懒人图库
  • 手机网站打开手机app比较火的小程序购物平台
  • 珠海网站制作渠道网站平台策划方案
  • 庄河网站建设公司手机网站模板下载免费
  • 做网页和做网站的区别青岛网站建设技术托管
  • 网站建设类行业资讯定制家具网站建设
  • WordPress 302重定向优化系统流程
  • 顺德网站建设找顺的介绍几个网站