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

中国农村建设网站首页免费友情链接交换平台

中国农村建设网站首页,免费友情链接交换平台,单一产品企业或多元化产品企业的网站建设与策划有什么不同?,成都知名网站建设让我们通过一个天气监测应用的例子来展示观察者模式。在这个应用中,WeatherStation 作为可观察的主题,它会跟踪天气数据的变化。Display 作为观察者,当天气数据更新时会显示最新的信息。 示例代码: import java.util.ArrayList;…

让我们通过一个天气监测应用的例子来展示观察者模式。在这个应用中,WeatherStation 作为可观察的主题,它会跟踪天气数据的变化。Display 作为观察者,当天气数据更新时会显示最新的信息。

示例代码:

import java.util.ArrayList;
import java.util.List;// 观察者接口
interface Observer {void update(float temperature, float humidity, float pressure);
}// 可观察对象接口
interface Observable {void registerObserver(Observer o);void removeObserver(Observer o);void notifyObservers();
}// 具体可观察对象:WeatherStation
class WeatherStation implements Observable {private List<Observer> observers;private float temperature;private float humidity;private float pressure;public WeatherStation() {observers = new ArrayList<>();}public void setMeasurements(float temperature, float humidity, float pressure) {this.temperature = temperature;this.humidity = humidity;this.pressure = pressure;measurementsChanged();}public void measurementsChanged() {notifyObservers();}@Overridepublic void registerObserver(Observer o) {observers.add(o);}@Overridepublic void removeObserver(Observer o) {observers.remove(o);}@Overridepublic void notifyObservers() {for (Observer observer : observers) {observer.update(temperature, humidity, pressure);}}
}// 具体观察者:Display
class Display implements Observer {private Observable weatherStation;public Display(Observable weatherStation) {this.weatherStation = weatherStation;weatherStation.registerObserver(this);}@Overridepublic void update(float temperature, float humidity, float pressure) {System.out.println("Current conditions: " + temperature + "C degrees and " + humidity + "% humidity");}public void unsubscribe() {weatherStation.removeObserver(this);}
}// 客户端代码
public class ObserverPatternExample {public static void main(String[] args) {WeatherStation weatherStation = new WeatherStation();Display currentDisplay = new Display(weatherStation);// 模拟新的天气测量数据weatherStation.setMeasurements(28.2f, 65f, 1013.1f);weatherStation.setMeasurements(22.1f, 70f, 1012.5f);// 当不再需要显示当前天气情况时,取消订阅currentDisplay.unsubscribe();// 即使更新了天气数据,Display 也不会收到通知weatherStation.setMeasurements(25.5f, 60f, 1014.9f);}
}

在这个例子中,WeatherStation 类实现了 Observable 接口,负责管理观察者并在数据更新时通知它们。Display 类实现了 Observer 接口,并在接收到更新通知时显示当前的天气条件。客户端代码创建了一个天气站对象和一个显示器对象,并模拟了天气数据的变化。

这个例子展示了观察者模式的核心概念:对象可以订阅和取消订阅事件,而主题对象在状态变化时会通知所有的订阅者。

总结

这个天气监测应用的例子展示了观察者模式在实际应用中的使用。该模式允许对象在无需知道其他对象具体实现的情况下相互通信,从而实现了主题和观察者之间的解耦。通过使用观察者模式,我们可以轻松地添加新的观察者,或者在不影响其他观察者的情况下更改主题的状态更新逻辑。

http://www.dtcms.com/wzjs/138941.html

相关文章:

  • 中国建设银行郑州分行网站百度seo排名报价
  • 网页设计师简历抚州seo排名
  • 邯郸学校网站建设费用太原百度seo
  • 建设医院网站多少钱培训课程表
  • 全国法院网站群建设会今天的新闻最新消息
  • 橱柜网站建设公司seo优化有哪些
  • 如何提升网站营销力网络搜索优化
  • 友汇网站建设一般多少钱网络推广方式方法
  • 如何自己建营销网站抖音seo是什么
  • 电子商务网站软件建设的核心是什么行者seo
  • 网站开发与维护关键词优化排名网站
  • 做标书的专业网站福州百度seo排名
  • 深圳做网站排名哪家专业广东seo推广公司
  • 做足彩网站推广seo网络推广方法
  • 阜阳建网站如何介绍自己设计的网页
  • 网站制作是什么公司燃灯seo
  • 日本做设计的网站有哪些方面宁德市人社局官网
  • 网站建设服务合同范本快速网络推广
  • jsp 企业建站搜索竞价
  • 湖南网站设计亮点媒体135网站
  • 东莞常平网站设计百度指数网址是多少
  • 网站建设流程与构架福建seo关键词优化外包
  • 沈阳市网站建设公司解释seo网站推广
  • 宝山专业做网站品牌网络推广外包
  • 电子商务网站建设与管理思考与练习win10优化大师有用吗
  • app与网站的关系百度贴吧入口
  • 贵州 跨境电商网站建设宁波公司做网站
  • 浏阳网页设计虞城seo代理地址
  • 做网站像美团一样多少钱网站备案
  • 国外的服务器做的网站在国外能打开在国内打不开是什么原因设计网站