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

网站开发php岗位职责网站推广主要包括建设期

网站开发php岗位职责,网站推广主要包括建设期,制作图片的软件及特点,网站上的图是怎么做的Java 观察者模式(Observer Pattern)详解 🧠 什么是观察者模式? 观察者模式是一种行为型设计模式,定义对象之间的一种一对多的依赖关系,使得每当一个对象状态发生变化时,所有依赖它的对象都会得…

Java 观察者模式(Observer Pattern)详解

🧠 什么是观察者模式?

观察者模式是一种行为型设计模式,定义对象之间的一种一对多的依赖关系,使得每当一个对象状态发生变化时,所有依赖它的对象都会得到通知并自动更新。


🎯 使用场景

  • 一个对象状态的变化需要通知多个对象
  • 系统中存在一对多的依赖关系
  • 实现事件处理系统(如GUI、订阅/发布)

🏗️ 模式结构

  • Subject(主题):被观察的对象,提供注册和移除观察者的方法
  • Observer(观察者):定义响应更新的方法
  • ConcreteSubject / ConcreteObserver:具体实现类

✅ 示例:天气预报系统

观察者接口(Observer)

public interface Observer {void update(float temperature, float humidity, float pressure);
}

主题接口(Subject)

public interface Subject {void registerObserver(Observer o);void removeObserver(Observer o);void notifyObservers();
}

具体主题类

import java.util.ArrayList;
import java.util.List;public class WeatherData implements Subject {private List<Observer> observers = new ArrayList<>();private float temperature;private float humidity;private float pressure;@Overridepublic void registerObserver(Observer o) {observers.add(o);}@Overridepublic void removeObserver(Observer o) {observers.remove(o);}@Overridepublic void notifyObservers() {for (Observer o : observers) {o.update(temperature, humidity, pressure);}}public void setMeasurements(float temperature, float humidity, float pressure) {this.temperature = temperature;this.humidity = humidity;this.pressure = pressure;notifyObservers();}
}

具体观察者类

public class CurrentConditionsDisplay implements Observer {private float temperature;private float humidity;@Overridepublic void update(float temperature, float humidity, float pressure) {this.temperature = temperature;this.humidity = humidity;display();}public void display() {System.out.println("当前温度:" + temperature + "℃,湿度:" + humidity + "%");}
}

客户端调用

public class WeatherStation {public static void main(String[] args) {WeatherData weatherData = new WeatherData();CurrentConditionsDisplay display = new CurrentConditionsDisplay();weatherData.registerObserver(display);weatherData.setMeasurements(26.5f, 65.0f, 1013.0f);}
}

✅ 优点

  • 降低耦合性,实现松散耦合的通知机制
  • 易于添加新观察者,符合开闭原则

⚠️ 缺点

  • 观察者太多时通知会影响性能
  • 通知链可能较复杂,调试困难

🧩 使用建议

适合构建事件驱动系统、发布订阅模型,也广泛应用于GUI框架、MVC架构中。

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

相关文章:

  • 网站备案变更公司名称单页设计制作
  • 金山网站建设关键词排名2018做网站赚钱不
  • 济南网站建设哪里好黄石市城市建设档案馆网站
  • 如何建立一个外贸公司网站一般设计网站页面用什么软件
  • 不写编程可以做网站建设wordpress 评分
  • 高端网站建设公司有必要做吗大学英文网站建设方案
  • 怎样用虚拟空间做网站做网站要学的教程
  • 衡水网站建设 燕丰收网站专题页面设计规范
  • 呼伦贝尔市住房和城乡建设局网站如何让我的网站被百度收录
  • 注册网站刀具与钢材经营范围wordpress主题创建后门
  • 网站建设质量管理定义华为官网商城手机价格
  • app开发和网站开发湖北省建设银行网站
  • ppt模板免费下载网站 知乎海淀网站建设电话
  • 基于微信公众平台的微网站开发怎么做网站免费的
  • 检查网站死链接做网站浏览器标签一般放哪
  • 海尔网站推广策划方案大连科技网站制作
  • wordpress 弹出层网站优化招聘
  • 黄页营销网站视频免费大全公司为什么做网站
  • 莱州网站建设制作微网站如何做微信支付宝支付宝支付接口
  • 新开的公司怎么做网站苏州企业黄页
  • 电商商城网站建设方案适合大学生举办的活动策划
  • 软件开发培训机构课程宁波网站搜索优化
  • 网站改版汇报如何设置网站的关键词
  • 许昌市建设信息网站燕郊网站制作
  • 建网站需要花哪些钱凡科代理平台
  • 常州做网站建设的公司天津网约车
  • 重庆微信开发网站建设十大互联网公司排名
  • 绿色蔬菜网站模板深圳展厅装修公司企业展厅设计公司
  • 淘宝网站建设维护会计科目达人室内设计网官方
  • 商务型网站网站内容页模板