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

自己做网站统计公司主页网站设计

自己做网站统计,公司主页网站设计,wordpress注册相关,徐州网站建设魔站定义了一种一对多的依赖关系,当一个对象的状态发生改变时,其所有依赖者都会收到通知并自动更新。 观察者模式是一种发布-订阅模式。它让发送通知的一方(被观察者)和接收通知的一方(观察者)能够解耦&#xf…

定义了一种一对多的依赖关系,当一个对象的状态发生改变时,其所有依赖者都会收到通知并自动更新。

观察者模式是一种发布-订阅模式。它让发送通知的一方(被观察者)和接收通知的一方(观察者)能够解耦,实现了对象之间的松耦合。

观察者模式的核心角色。

  1. Subject(主题/被观察者):维护观察者列表,提供添加、删除观察者的方法,以及通知观察者的方法。
  2. Observer(观察者):定义一个更新接口,用于在主题状态改变时接收通知。
  3. ConcreteSubject(具体主题):实现主题接口,存储具体状态,当状态改变时通知所有观察者。
  4. ConcreteObserver(具体观察者):实现观察者接口,维护一个指向具体主题的引用,存储与主题相关的状态。

下面是一个完整的观察者模式 Demo。

定义观察者接口。

public interface Observer {void update(String message);
}

定义主题接口。

public interface Subject {void registerObserver(Observer observer);void removeObserver(Observer observer);void notifyObservers(String message);
}

实现具体主题。

import java.util.ArrayList;
import java.util.List;public class ConcreteSubject implements Subject {private List<Observer> observers = new ArrayList<>();@Overridepublic void registerObserver(Observer observer) {observers.add(observer);}@Overridepublic void removeObserver(Observer observer) {observers.remove(observer);}@Overridepublic void notifyObservers(String message) {for (Observer observer : observers) {observer.update(message);}}public void changeState(String newState) {System.out.println("Subject state changed to: " + newState);notifyObservers(newState);}
}

实现具体观察者。

public class ConcreteObserver implements Observer {private String name;public ConcreteObserver(String name) {this.name = name;}@Overridepublic void update(String message) {System.out.println(name + " received message: " + message);}
}

执行测试代码,输出结果。

public class ObserverPatternDemo {public static void main(String[] args) {// 创建主题ConcreteSubject subject = new ConcreteSubject();// 创建观察者Observer observer1 = new ConcreteObserver("Observer 1");Observer observer2 = new ConcreteObserver("Observer 2");Observer observer3 = new ConcreteObserver("Observer 3");// 注册观察者subject.registerObserver(observer1);subject.registerObserver(observer2);subject.registerObserver(observer3);// 改变主题状态,观察者会收到通知subject.changeState("State 1");// 移除一个观察者subject.removeObserver(observer2);// 再次改变状态subject.changeState("State 2");}
}

可以看到,只要主题类发生变更,依赖于它的观察者都会收到通知并进行相应的更新。

总结

观察者模式。将主题和观察者解耦,实现了对象之间的松耦合。是一种一对多的通知机制,使得双方无需关心对方,只关心通知本身。

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

相关文章:

  • 网站单独页面怎么做301重定向优化seo设置
  • 我要学做网站关键词分为哪三类
  • wordpress怎么盈利百度官方优化指南
  • 北京著名网站设计公司市场营销四大分析方法
  • 怎么查询别人的网站是独立ip还是共享ip上海关键词优化的技巧
  • 帮你做决定的网站东莞整站优化排名
  • wordpress设置缓存北京seo公司司
  • 网站制作企优化系统的软件
  • wordpress做新闻网站上海关键词优化排名软件
  • 商业网站开发设计报告seo技术培训广东
  • asp.net c 网站开发网络推广的细节
  • 网站建设便宜苏州百度搜索排名优化
  • 在网络上做兼职的网站做seo要投入什么
  • wordpress开启ssl变慢seo建站是什么意思
  • 海口建设网站的公司互联网营销策划方案
  • 网站的佣金怎么做会计分录西安优化网站公司
  • 网站如何开通微信支付接口免费的拓客平台有哪些
  • 住房和城乡建设部网站bim百度软件应用市场
  • 海原电商网站建设网络舆情监测系统软件
  • 手机网页版传奇关键词优化网站排名
  • 柳州网站建设工作室广告公司业务推广
  • 网站建设域名什么意思百度搜索指数排行榜
  • java网站开发实例下载seo关键词优化排名公司
  • 五合一网站定制搜狗站长工具平台
  • 常州专业做网站百度热搜排名
  • 武汉光谷医院厦门seo全网营销
  • 网络设计包括哪些北京seo供应商
  • 贵阳网站建设公司排名常见的网站推广方法
  • 做竞价网站 要注意什么友情链接系统
  • 室内设计师灵感网站关键词搜索热度查询