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

网站后台修改的页面不能显示徐州seo顾问

网站后台修改的页面不能显示,徐州seo顾问,汉口江岸区城市建设局网站,学校登陆网站制作一、模式结构 观察者模式包含以下四个角色: Subject(主题/被观察者) 维护观察者列表,提供注册(registerObserver)、移除(removeObserver)观察者的方法,并定义通知所有观察…

一、模式结构

观察者模式包含以下四个角色:

  1. Subject(主题/被观察者)
    • 维护观察者列表,提供注册(registerObserver)、移除(removeObserver)观察者的方法,并定义通知所有观察者的方法(notifyObservers)。
    • 示例:天气数据(WeatherData)、优衣库品牌决策(UniqloBrandDecision)。
  2. Observer(观察者)
    • 定义更新接口(update),用于接收主题的通知并执行响应逻辑。
    • 示例:天气显示组件(CurrentConditionsDisplay)、消费者(Consumer)。
  3. ConcreteSubject(具体主题)
    • 实现主题接口,管理观察者列表,并在状态变化时触发通知。例如,WeatherData类在温度、湿度等数据更新时调用notifyObservers
  4. ConcreteObserver(具体观察者)
    • 实现观察者接口,定义具体响应逻辑。例如,CurrentConditionsDisplay在接收到数据后更新显示内容。

二、核心实现步骤

  1. 定义观察者接口:声明update方法,参数可为数据对象或主题引用(推模型或拉模型)。
  2. 实现具体观察者:在update方法中处理主题状态变化,例如更新UI或执行业务逻辑。
  3. 定义主题接口:包含观察者管理方法和通知方法。
  4. 实现具体主题:维护观察者列表,在状态变化时遍历并调用update方法。

三、代码示例(气象站系统)

// 观察者接口
public interface Observer {void update(float temp, float humidity, float pressure);
}
// 主题接口
public interface Subject {void registerObserver(Observer o);void removeObserver(Observer o);void notifyObservers();
}
// 具体主题类(天气数据)
public class WeatherData implements Subject {private List 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 measurementsChanged() {notifyObservers();}public void setMeasurements(float temp, float humidity, float pressure) {this.temperature = temp;this.humidity = humidity;this.pressure = pressure;measurementsChanged();}
}
// 具体观察者类(当前天气显示)
public class CurrentConditionsDisplay implements Observer {private float temp, humidity;@Overridepublic void update(float temp, float humidity, float pressure) {this.temp = temp;this.humidity = humidity;display();}private void display() {System.out.println("当前温度:" + temp + "℃,湿度:" + humidity + "%");}
}

四、适用场景

  1. 事件驱动系统:如GUI事件处理、按钮点击监听。
  2. 实时数据监控:股票价格变动、传感器数据更新。
  3. 订阅/发布模型:邮件订阅、RSS订阅、消息队列。
  4. 跨模块通知:订单状态变更通知多个服务。

五、优缺点分析

优点缺点
- 解耦主题与观察者,符合开闭原则。- 观察者过多时性能下降。
- 动态扩展观察者,无需修改核心逻辑。- 通知顺序不可控,可能引发依赖链问题。
- 支持广播通信,实现事件驱动机制。- 循环依赖可能导致栈溢出。

六、高级应用与优化

  1. 异步通知:使用线程池处理观察者回调,避免阻塞主题线程。
  2. 事件参数化:通过事件对象(如VoteEvent)传递具体数据,增强灵活性。
  3. 弱引用机制:防止内存泄漏(如使用WeakReference存储观察者)。
  4. 分布式扩展:结合消息队列(如Kafka)实现跨进程观察者。

七、Java内置支持(已过时)

JDK提供java.util.ObservableObserver类,但因设计缺陷(如需手动调用setChanged())已被标记为过时。推荐自定义实现或使用现代框架(如Spring的ApplicationEvent)。


总结

观察者模式通过解耦主题与观察者,实现了灵活的通知机制,广泛应用于事件驱动、实时监控等场景。开发者需权衡性能与扩展性,合理设计通知模型(推/拉)和生命周期管理。


文章转载自:

http://ahdDJ4Oq.rsqpc.cn
http://smA9pWIJ.rsqpc.cn
http://rQQllzEE.rsqpc.cn
http://9IWpTSTE.rsqpc.cn
http://P6Dyw8x3.rsqpc.cn
http://faRmYv5Z.rsqpc.cn
http://K4fUJpKB.rsqpc.cn
http://cPoFpSUd.rsqpc.cn
http://Z1Zy2hIz.rsqpc.cn
http://1LyBPba2.rsqpc.cn
http://1d7dTgI5.rsqpc.cn
http://joskskY7.rsqpc.cn
http://AdCJkk3V.rsqpc.cn
http://L17J1pFR.rsqpc.cn
http://xJYhWq28.rsqpc.cn
http://pCpWo1yV.rsqpc.cn
http://LXmclTyf.rsqpc.cn
http://olGPlV15.rsqpc.cn
http://UunTV3yW.rsqpc.cn
http://L656AwK0.rsqpc.cn
http://hvJXmQwu.rsqpc.cn
http://1DZpXenh.rsqpc.cn
http://QrIrKye5.rsqpc.cn
http://NFrGyOSD.rsqpc.cn
http://iCKQDv1C.rsqpc.cn
http://5eariGLC.rsqpc.cn
http://NlrsjlQc.rsqpc.cn
http://y627sP8b.rsqpc.cn
http://Be9trERU.rsqpc.cn
http://X1tFxeS7.rsqpc.cn
http://www.dtcms.com/wzjs/653110.html

相关文章:

  • 广州市外贸网站建设品牌莫名接到网站建设电话
  • 电商网站开发模块网站对服务器要求
  • 金融公司 网站开发培训课程
  • 北京网站建设公司分享网站改版注意事项企业网站发展趋势
  • 网站托管如何收费wordpress自己做主题
  • 江门市智企互联网站建设网页设计企业网站素材库
  • 西安自适应网站建设新型建房有哪几种
  • 泉做网站的公司淘宝摄影培训推荐
  • 网站建设与制作教程网站建设江门网站建设推广平台
  • 达州网站制作深圳南山网的工作
  • 搞笑网站全站源码杭州工程建设网
  • 购物网站系统设计天津网站公司
  • 上海网站建设定制开发平面设计网络培训
  • 网站换模板有影响吗网上做室内设计的网站
  • 大型网站建设公司沈阳网站建设与维护实训总结
  • 手机网站开发注意的问题怀化网站建设有哪些
  • 众筹网站开发分析报告适合做视频的自媒体平台
  • 个人做网站要注意什么条件如何选择手机网站建设
  • 做网站上传信息软件wordpress模版怎么设计
  • 广西网站建设seo优化网站优化常见的优化技术
  • 汉口网站建设制作网站公司建站
  • 商机网网站源码wordpress 页面满屏
  • 做个什么类型网站滨州正规网站建设价格
  • 零基础可以用阿里云做网站吗公司网站设计好
  • 东莞建设局门户网站广州冼村小学
  • 网站建设_免费视频h5模板素材
  • 重庆城市建设集团官方网站cgi做网站
  • 大麦网的网站建设设计导航精选最好的设计网站大全
  • 黑龙江建设银行交通违法网站小程序微盟
  • 长春网站设计880元基木鱼建站