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

知道网站前台怎样进后台html购物网页设计

知道网站前台怎样进后台,html购物网页设计,现在网络推广哪家好,关于网站可信备案一、什么是观察者模式? 观察者模式(Observer Pattern)是一种行为型设计模式,用于对象之间的一对多依赖关系:当被观察对象(Subject)状态发生变化时,所有依赖它的观察者(O…

一、什么是观察者模式?

观察者模式(Observer Pattern)是一种行为型设计模式,用于对象之间的一对多依赖关系:当被观察对象(Subject)状态发生变化时,所有依赖它的观察者(Observer)都会自动收到通知并更新

拿天气预报系统来类比
假设你是一个气象局的中央发布系统,每当你更新天气预报,订阅了你天气服务的各种渠道(如手机 App、LED 公交站牌、广播系统)都会自动收到通知并显示新的天气情况。

  • 气象局 = 被观察者(Subject)
  • 各种显示设备 = 观察者(Observer)
  • 通知机制 = 观察者模式的核心精髓

二、模式结构图

在这里插入图片描述

三、代码实战

我们构建一个完整的天气通知系统:

  • WeatherStation 是被观察者
  • PhoneDisplayLedBoardDisplay 是观察者

1. Observer 接口

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

2. Subject 接口

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

3. WeatherStation(被观察者)

import java.util.ArrayList;
import java.util.List;public class WeatherStation implements Subject {private List<Observer> observers = new ArrayList<>();private float temperature, humidity, 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 temp, float hum, float press) {this.temperature = temp;this.humidity = hum;this.pressure = press;notifyObservers(); // 状态变了,通知大家!}
}

4. 两个观察者实现类

手机显示端

public class PhoneDisplay implements Observer {@Overridepublic void update(float temperature, float humidity, float pressure) {System.out.println("[手机App] 当前天气:温度=" + temperature + "℃,湿度=" + humidity + "%,气压=" + pressure + " hPa");}
}

LED 公交站牌

public class LedBoardDisplay implements Observer {@Overridepublic void update(float temperature, float humidity, float pressure) {System.out.println("[LED站牌] 实时天气:T=" + temperature + "℃ | H=" + humidity + "% | P=" + pressure + " hPa");}
}

5. 主程序测试

public class WeatherApp {public static void main(String[] args) {WeatherStation station = new WeatherStation();Observer phone = new PhoneDisplay();Observer led = new LedBoardDisplay();station.registerObserver(phone);station.registerObserver(led);station.setMeasurements(28.5f, 60f, 1012f);station.setMeasurements(30.1f, 55f, 1008f);}
}

四、实战示例UML 图

@startuml
interface Observer {+update(temp, humidity, pressure)
}interface Subject {+registerObserver(o: Observer)+removeObserver(o: Observer)+notifyObservers()
}class WeatherStation implements Subject {-observers: List<Observer>-temperature: float-humidity: float-pressure: float+setMeasurements(temp, hum, press)
}class PhoneDisplay implements Observer
class LedBoardDisplay implements ObserverSubject <|.. WeatherStation
Observer <|.. PhoneDisplay
Observer <|.. LedBoardDisplay
WeatherStation --> Observer : notifies >>
@enduml

五、优点与应用场景

优点

  • 低耦合性:Subject 和 Observer 相互独立,只通过接口联系;
  • 灵活可扩展:任意添加/删除观察者,不影响其他模块;
  • 符合开闭原则:修改 Subject 不影响 Observer 行为。

典型应用场景

  • GUI 事件系统(按钮点击监听)
  • 消息订阅与发布(如 Kafka、MQTT)
  • 数据驱动的响应式 UI 框架(React/Vue 背后的思想)
  • 游戏状态监听器(如玩家血量变化通知 UI)

六、小结

一句话总结观察者模式: “我变了,我的订阅者们会立刻知道。”

观察者模式本质上是发布-订阅模式的一种实现。通过本篇“天气预报”类比,我们不仅理解了模式的结构,还体验了它在实际开发中的强大威力。

七、参考

《23种设计模式概览》
在这里插入图片描述

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

相关文章:

  • wordpress后台如何登录windows优化大师和鲁大师
  • 青岛市崂山区建设局网站wordpress文章页面图片自动适应
  • 久久建工集团网站优化北京如何联系?
  • 网站访客分析求个网站2021可用
  • 专业的个人网站建设哪家网站开发课程设计
  • wordpress可以做电影网站吗零基础是学不了ui的
  • 网站外包注意事项网站建设公司如何营销
  • 网站制作 万网网页设计怎样做
  • 网站开发程序员岗位职责wordpress开发单页面
  • 建设与管理局网站长沙岳麓区房价新楼盘房价
  • 中国化工第九建设公司网站树莓派下载wordpress
  • 住房和城乡建设部网站标准定额wordpress换主题后打不开
  • 承接网站建设如何设计出一个好网站
  • 做网站前做电器推广的网站
  • 佛山网站建设哪家专业公司改名字重新备案网站会停吗
  • 网站怎么屏蔽国内访问网站上的办公网站怎么做
  • 网站建设公司工资标准域名服务网站建设科技公司
  • 哈尔滨产品推广网站凡客诚品质量如何
  • 小型深圳网站定制开发wordpress编辑框经典
  • 叫人做国外公司网站让老外做好还是国内人做好长沙网站优化排名推广
  • 杭州做网站价格上海移动网站开发
  • 砀山做网站做招商的网络营销推广
  • 昆明网站搭建wordpress 4.5.2改语言
  • 前端企业网站开发海珠高端网站建设
  • wordpress网站备份做网站生意买螃蟹
  • 怎么快速优化网站用网址进入的游戏
  • 企业网站icp备案网站域名登记证明
  • seo建站外贸沈阳德泰诺网站建设公司
  • html5网站强制横屏可信网站 quot 验证能防范哪些安全.
  • 苏州建设局官方网站河南经贸一站式服务平台