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

响应式网络网站源码网站建设课程设计报告php

响应式网络网站源码,网站建设课程设计报告php,常德哪里有做网站,网站开发英文文献观察者模式用于建立对象间一对多的依赖关系。当一个对象(主题)状态改变时,所有依赖它的对象(观察者)都会自动收到通知并更新。核心组件主题 (Subject)维护观察者列表,提供注册/注销方法,通知观察…

观察者模式用于建立对象间一对多的依赖关系。当一个对象(主题)状态改变时,所有依赖它的对象(观察者)都会自动收到通知并更新。

核心组件
  1. 主题 (Subject)
    维护观察者列表,提供注册/注销方法,通知观察者状态变化

    import java.util.ArrayList;
    import java.util.List;public abstract class Subject {private List<Observer> observers = new ArrayList<>();public void attach(Observer o) {observers.add(o);}public void detach(Observer o) {observers.remove(o);}public void notifyObservers() {for (Observer o : observers) {o.update();}}
    }
    

  2. 观察者 (Observer)
    定义更新接口,接收主题通知

    public interface Observer {void update();
    }
    

具体实现示例

主题实现类

public class ConcreteSubject extends Subject {private int state;public int getState() {return state;}public void setState(int state) {this.state = state;notifyObservers();  // 状态变化时通知观察者}
}

观察者实现类

public class ConcreteObserver implements Observer {private String name;private ConcreteSubject subject;public ConcreteObserver(String name, ConcreteSubject subject) {this.name = name;this.subject = subject;subject.attach(this);  // 自动注册到主题}@Overridepublic void update() {System.out.println(name + " 收到更新: 状态值 = " + subject.getState());}
}

使用示例
public class Client {public static void main(String[] args) {ConcreteSubject subject = new ConcreteSubject();new ConcreteObserver("观察者A", subject);new ConcreteObserver("观察者B", subject);subject.setState(10);  // 触发通知subject.setState(20);  // 再次触发通知}
}

输出结果
观察者A 收到更新: 状态值 = 10
观察者B 收到更新: 状态值 = 10
观察者A 收到更新: 状态值 = 20
观察者B 收到更新: 状态值 = 20

模式优势
  1. 松耦合:主题无需知道观察者的具体实现
  2. 动态关系:可随时添加/删除观察者
  3. 广播通信:一次状态变化可通知多个对象
  4. 符合开闭原则:新增观察者无需修改主题代码
典型应用场景
  • GUI 事件处理(如按钮点击)
  • 消息订阅系统
  • 股票价格变动通知
  • 游戏中的成就系统
  • 分布式系统的状态同步

注意:Java 内置 java.util.ObservableObserver 接口已过时(Java 9+),推荐使用自定义实现或 java.beans.PropertyChangeListener 替代。

http://www.dtcms.com/a/591916.html

相关文章:

  • 保山市住房和城乡建设局门户网站crm开发
  • 个人网站做影视自助免费建网站
  • 广州市企业网站建设平台成都犀牛网站建设
  • 做网站都需要什么人团苏州外贸网站建站
  • 卡地亚手表官方网站查询管理学习网站
  • 有做敦煌网站的吗长沙公司网站制作
  • 网站推广存在的问题营销型企业网站的建设步骤
  • 郑州网站建设一汉狮网络网络策划书一般包括哪些内容
  • 东莞家居网站建设北京12345微信公众号
  • 网站站点管理wordpress download
  • 什么网站有高端定制案例app软件制作网站
  • 石家庄做网站最好的公司哪家好怎么建网站做淘宝客
  • 建设网站企业网银登录建设短视频网站
  • 福州网站建设教程视频网站群发软件
  • 网站上传不了一起做网店17
  • 企业网站建设兴田德润很赞遵义网站建公司
  • 网站建设來选宙斯站长免费开店的平台有哪些
  • 专业的盐城网站开发泉州专业网站建设公司哪家好
  • 阿里云二级域名网站怎么建设淮安网站建设公司电话
  • 专业做家电经销的网站棋牌app制作教程
  • 做网站这么便宜可以吗网站怎么做备案
  • 网站域名到期后不续费会怎样建设部网站 标准定额司
  • asp.net 网站启动慢nginx和wordpress
  • 随身wifi网站设置wordpress国产课程主题
  • 中国最好的建站公司crm管理是什么意思
  • 新网站应该怎么做seo徐州集团网站建设公司
  • 国内自动化网站建设注册建设通网站首页
  • 广西智能网站建设方案阳江房产网签查询
  • 做坏事网站网站建设营销话术
  • 郑州站中英文的网站开发