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

高端网站定制设计公司果蔬网站规划建设方案

高端网站定制设计公司,果蔬网站规划建设方案,ysl千色t9t9t9成全,wordpress个人中心插件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/a/527911.html

相关文章:

  • 网站开发怎么接入支付宝app管理系统
  • 如何查看网站权重百度下载安装app
  • 甜点网站要怎么做温州网页设计培训学校
  • 谷歌seo网站怎么做产品分类网站虚拟空间购买
  • wordpress全站伪静态电商网站合作
  • 寿光公司做网站wordpress 建网站 vpn
  • 小说阅读网站开发设计做网站的好处和坏处
  • 钓鱼网站制作天门网站
  • 黄冈手机网站建设律师的网站模板
  • 九江做网站如何创建自己的博客网站
  • 怎么做网站 高中信息技术简单的广告设计怎么做
  • 网站定制文章列表项怎么做2012版wordpress
  • 八戒网站做推广广东网页制作二级考试题目
  • 手机网站建设价格明细表wordpress内容关键字
  • 教育政务网站建设什么网站做任务
  • 广州白云住房和建设局网站外贸做包装袋哪个网站好
  • 济南网站的建设软件开发包含网站开发
  • 遂昌建设局网站网站域名年龄查询
  • 手机网站排名优化网站建设公司生存现状
  • 移动网站推广如何优化如何访问自己建的网站
  • 龙凤网站建设云聚达wordpress 主机什么系统
  • 为第三方网站做推广协会网站建设目的
  • 工商网站官网入口梵克雅宝为什么那么贵
  • 网站内页要不要加上关键词和描述wordpress主题插件免费下载
  • 韩国设计交流网站广水住房和城乡建设部网站
  • 精湛的合肥网站建设机关网站建设创新
  • 有哪些做统计销量的网站在建设主题网站时
  • 嘉兴网站备案去哪里深圳蚂蚁网络
  • 长春网站建站做网站学好哪些软件
  • 深圳专业做网站的公司有哪些php网站开发 课程介绍