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

好看的手机网站布局VM2008 做网站

好看的手机网站布局,VM2008 做网站,网站列表页内容,海淀做网站好的公司观察者模式: 定义一系列对象之间的一对多关系;当一个对象改变状态,它的依赖都会被通知。 主要由主题(Subject)和观察者(Observer)组成。 代码实现 package com.designpatterns.observer;/*** 定…

观察者模式: 定义一系列对象之间的一对多关系;当一个对象改变状态,它的依赖都会被通知。 主要由主题(Subject)和观察者(Observer)组成。

代码实现

package com.designpatterns.observer;/*** 定义主题接口*/
public interface Subject {void registerObserver(Observer o);void removeObserver(Observer o);void notifyObservers();
}
/*** 定义观察者接口*/
public interface Observer {public void update(float temp,float humidity,float pressure);//当主题状态变更时,被调用
}
package com.designpatterns.observer;/*** 定义天气情况显示的元素接口*/
public interface DisplayElement {public void display();
}
package com.designpatterns.observer;import java.util.ArrayList;
import java.util.List;/*** 具体主题的实现*/
public class WeatherDataConcretSubject implements  Subject{private List<Observer> observers;private float temperature;private  float humidity;private float pressure;public WeatherDataConcretSubject(){observers=new ArrayList<>();}@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);  //观察者更新天气数据}}public void measurementsChanged(){notifyObservers();//当测量到新的天气数据,通知观察者}/*** 设置天气测试数据* @param temperature* @param humidity* @param pressure*/public void setMeasurements(float temperature,float humidity,float pressure){this.temperature=temperature;this.humidity=humidity;this.pressure=pressure;measurementsChanged();}}

package com.designpatterns.observer;/**** 具体每个观察者实现。每个观察着注册具体主题以接口更新*** 显示当前的天气情况***/
public class CurrentConditionsDisplay implements Observer, DisplayElement{private float temperature;private float humidity;private WeatherDataConcretSubject weatherDataConcretSubject;public CurrentConditionsDisplay(WeatherDataConcretSubject weatherDataConcretSubject){this.weatherDataConcretSubject=weatherDataConcretSubject;weatherDataConcretSubject.registerObserver(this);}@Overridepublic void update(float temp, float humidity, float pressure) {this.temperature=temp;this.humidity=humidity;display();}@Overridepublic void display() {System.out.println("Current conditions:"+temperature+"F degrees and "+ humidity+"% humidity ");}
}
package com.designpatterns.observer;public class ForecastDisplay implements  Observer,DisplayElement{private float temperature;private float humidity;private WeatherDataConcretSubject weatherDataConcretSubject;public ForecastDisplay(WeatherDataConcretSubject weatherDataConcretSubject){this.weatherDataConcretSubject=weatherDataConcretSubject;weatherDataConcretSubject.registerObserver(this);}@Overridepublic void display() {//显示预报的天气System.out.println("ForecastDisplay:"+temperature+"F degrees and "+ humidity+"% humidity ");}@Overridepublic void update(float temp, float humidity, float pressure) {this.temperature=temp;this.humidity=humidity;display();}
}
package com.designpatterns.observer;public class StatisticsDisplay implements Observer,DisplayElement{private float temperature;private float humidity;private WeatherDataConcretSubject weatherDataConcretSubject;public StatisticsDisplay(WeatherDataConcretSubject weatherDataConcretSubject){this.weatherDataConcretSubject=weatherDataConcretSubject;weatherDataConcretSubject.registerObserver(this);}@Overridepublic void update(float temp, float humidity, float pressure) {this.temperature=temp;this.humidity=humidity;display();}@Overridepublic void display() {//显示测量的avg,min,max值System.out.println("StatisticsDisplay:"+temperature+"F degrees and "+ humidity+"% humidity ");}
}
package com.designpatterns.observer;/*** 观察者模式测试*/
public class WeatherStationTest {public static void main(String[] args) {WeatherDataConcretSubject weatherDataConcretSubject=new WeatherDataConcretSubject();CurrentConditionsDisplay currentConditionsDisplay=new CurrentConditionsDisplay(weatherDataConcretSubject);StatisticsDisplay statisticsDisplay=new StatisticsDisplay(weatherDataConcretSubject);ForecastDisplay forecastDisplay=new ForecastDisplay(weatherDataConcretSubject);//设置模拟的气象数据weatherDataConcretSubject.setMeasurements(80,65,30.4f);weatherDataConcretSubject.setMeasurements(82,70,29.2f);weatherDataConcretSubject.setMeasurements(78,90,29.2f);}
}
http://www.dtcms.com/a/542092.html

相关文章:

  • 网站建设过程与思路淄博哪家公司做网站最好
  • 云服务器搭建网站wordpress按钮无法显示
  • 8086微机原理与汇编语言,8086程序设计,EMU8086,MASM,汇编程序设计,proteus
  • hardfault 排查方法
  • 超级单体风暴国内外研究现状
  • 广告网站建设设计帮忙建设公司网站
  • 网站如何带来流量网站建设需要硬件设备
  • LLM评估指南:从传统指标到智能体测试
  • 架构一个完整的Linux物联网设备应用层事件触发机制程序
  • 计算机视觉:python老照片修复系统 卷积神经网络CNN算法 图片修复 深度学习 Django框架 pytorch 大数据(建议收藏)✅
  • 深圳网站建设公司选全通网络东莞网站建设咨询公
  • C 语言进制转换全景指南
  • 前端速通—Vue_简介 第一个Vue程序 el:挂载点 data:数据对象 Vue指令
  • Vue 3 + Element Plus 动态通用表单组件设计与实现
  • 网站开发用到什么技术wordpress的安装界面
  • c 开发商城网站开发nodejs同时做网站和后台管理
  • 开发中的英语积累 P10:Capability、Enterprise、Transport、Loop、Active、Host
  • 网站建设开发步骤wordpress用旧的编辑器
  • 劳力士手表网站官方网站是 优帮云
  • 中国建设银行网站查询余额网络销售渠道
  • 【FPGA】时序逻辑计数器——仿真验证
  • 2025年--Lc217-145. 二叉树的后序遍历(递归版,带测试用例)-Java版
  • 做直播网站要多少钱北京网页设计
  • 门户网站标题居中加大seo个人博客
  • 【音视频】RTP协议快速上手
  • 阿里云可以做几个网站做网站南昌
  • DM8 分区表学习笔记
  • 做网站有没有免费空间英文网站建设注意什么
  • 3.枚举算法(一)
  • 网站开发需求收集网站建设和维护工作内容