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

货架 网站建设 牛商网个人免费推广网站

货架 网站建设 牛商网,个人免费推广网站,wordpress添加价格,wordpress获取图片原图观察者模式(Observer Pattern)是一种常用的软件设计模式,它用于在对象之间建立一种一对多的依赖关系,当一个对象的状态发生变化时,它的所有依赖对象都会得到通知并自动更新。观察者模式属于行为型模式。 在观察者模式…

观察者模式(Observer Pattern)是一种常用的软件设计模式,它用于在对象之间建立一种一对多的依赖关系,当一个对象的状态发生变化时,它的所有依赖对象都会得到通知并自动更新。观察者模式属于行为型模式。

在观察者模式中,有两个核心角色:主题(Subject)和观察者(Observer)。主题是被观察的对象,它维护了一个观察者列表,可以动态地添加、删除和通知观察者。观察者是依赖于主题的对象,当主题的状态发生变化时,观察者会得到通知并执行相应的操作。

下面是一个简单的示例,展示了如何使用观察者模式实现一个简单的气象站:

import java.util.ArrayList;
import java.util.List;// 主题接口
interface Subject {void registerObserver(Observer observer);void removeObserver(Observer observer);void notifyObservers();
}// 观察者接口
interface Observer {void update(float temperature, float humidity, float pressure);
}// 具体主题类
class WeatherData implements Subject {private List<Observer> observers;private float temperature;private float humidity;private float pressure;public WeatherData() {observers = new ArrayList<>();}public void registerObserver(Observer observer) {observers.add(observer);}public void removeObserver(Observer observer) {observers.remove(observer);}public void notifyObservers() {for (Observer observer : observers) {observer.update(temperature, humidity, pressure);}}public void measurementsChanged() {notifyObservers();}public void setMeasurements(float temperature, float humidity, float pressure) {this.temperature = temperature;this.humidity = humidity;this.pressure = pressure;measurementsChanged();}
}// 具体观察者类
class CurrentConditionsDisplay implements Observer {private float temperature;private float humidity;public void update(float temperature, float humidity, float pressure) {this.temperature = temperature;this.humidity = humidity;display();}public void display() {System.out.println("Current conditions: " + temperature + "F degrees and " + humidity + "% humidity");}
}// 测试代码
public class ObserverPatternExample {public static void main(String[] args) {WeatherData weatherData = new WeatherData();CurrentConditionsDisplay currentDisplay = new CurrentConditionsDisplay();weatherData.registerObserver(currentDisplay);weatherData.setMeasurements(80, 65, 30.4f);weatherData.setMeasurements(82, 70, 29.2f);weatherData.setMeasurements(78, 90, 29.2f);}
}

在上面的示例中,WeatherData充当主题,它实现了Subject接口,并维护了一个观察者列表。CurrentConditionsDisplay充当观察者,它实现了Observer接口,并在update方法中更新自己的状态并进行显示。

在测试代码中,创建了一个WeatherData对象和一个CurrentConditionsDisplay对象,并将CurrentConditionsDisplay注册为WeatherData的观察者。然后通过调用setMeasurements方法模拟气象数据的更新,WeatherData会通知所有注册的观察者,并调用它们的update方法进行更新和显示。

这个示例展示了观察者模式的基本结构和使用方法。观察者模式可以帮助我们实现松耦合的对象之间的通信,使得对象之间的依赖关系更加灵活和可扩展。

http://www.ritt.cn/news/15518.html

相关文章:

  • 漳州 网站建设公司郑州网站运营专业乐云seo
  • wordpress数据过滤关键词优化排名第一
  • 本机可以做网站的服务器搜索大全引擎地址
  • 做商城网站需要在北京注册公司吗有域名了怎么建立网站
  • 邯郸哪里制作网站信息流优化师面试常见问题
  • 购买高仿手表网站百度手机助手app下载
  • 企业网站建设总结bing收录提交
  • 网站开发怎么设置打印按钮网站怎么营销推广
  • 一键网站提交又一病毒来了比新冠可怕
  • 1元建站电商培训机构
  • 二手车做网站的目的seo职位
  • 做自己的安卓交友网站聚合搜索引擎
  • 网站访问量咋做西地那非片的正确服用方法
  • 网站托管公司如何选择知名做网站的公司
  • 网站开发方式seo外链友情链接
  • 企业做网站有用吗天涯百度推广图片
  • 网站设计欣赏国外优化大师官方网站
  • 外贸必备的app郑州网站推广优化
  • 网站加载效果怎么做的廊坊网站建设优化
  • 中山 网站建设 骏域网站建设公司哪家好?该如何选择
  • 品牌设计公司取名seo店铺描述
  • 一个网站交互怎么做网站建设的系统流程图
  • 高仿卡西欧手表网站seo关键词排名如何
  • 大兴模版网站建设哪家好公司产品营销广告宣传
  • 网站的设计 更新全国疫情地区查询最新
  • 建设网站注意哪几点杭州关键词自动排名
  • 容桂网站建设哪家公司好品牌推广活动策划方案
  • 室内设计者联盟网站长沙优化排名推广
  • 天津免费建网站广西壮族自治区在线seo关键词排名优化
  • 闲置tp路由自己做网站最佳的搜索引擎