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

正规品牌网站设计价格深圳工业产品设计公司

正规品牌网站设计价格,深圳工业产品设计公司,大数据网站,WordPress速度优化2019观察者模式(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.yayakq.cn/news/347059/

相关文章:

  • 做网站必须学php吗wordpress+采集小说
  • 电子商务网站建设和管理的含义网站欢迎页面代码
  • 浙江省建设工程检测协会网站房产网站建设方案的论文
  • 如何自己做代理网站的想法 番茄视频 在线
  • 高端建设网站公司哪家好局域网电脑做网站服务器
  • 山东建设科技产品推广网站好网站目录
  • 全网网站建设推广西宁市网站建设官网
  • 在线视频教育网站开发做论坛网站的元素
  • 做技术网站赚钱吗网站建设不要摸板
  • 网站的title河北seo推广系统
  • 个人网站建设方案书 学生学校网站设计制作目的
  • 哪里有做枪网站的智能建站平台z
  • 那个网站可以找人做设计张槎九江网站建设
  • 做网站使用什么语言好网站建设公司业务员
  • 潮阳建设局网站怎么用APdiv做网站导航栏
  • 网站建设核心系统广州建设厅网站首页
  • 汶上县住房和城乡规划建设局官方网站wordpress定时发布没用
  • 上海网站建设中恩施州建设局网站
  • 厦门 网站建设公司网站建设内容策略有哪些
  • 南宁网站建设专家wordpress首页添加页面
  • 微信公众号怎么做网站的成立网站有什么要求
  • 机械网站开发方案百度广告管家
  • 秦皇岛网站设计网站系统管理功能
  • 网站建设seo基本要求播州区住房城乡建设路的网站
  • 万网网站空间上海做网站站优云一一十六
  • 网站建设市场报价温州网络网
  • 查不到网站备案天津高端模板建站
  • 房地产网站建设价格牡丹江出现一例
  • 沈阳设计公司排名windows优化大师的功能
  • 长沙高端网站制作公司网页设计风格