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

郑州做网站优化公沈阳网站关键词排名

郑州做网站优化公,沈阳网站关键词排名,网站开发需要什么语言,网站建设必会的软件一、概述 观察者模式 (Observer Pattern) 是一种行为型设计模式,又被称为发布-订阅 (Publish/Subscribe) 模式,它定义了对象之间的一种一对多的依赖关系,使得当一个对象的状态发生变化时,所有依赖于它的对象都会自动收到通知并更新…

一、概述

        观察者模式 (Observer Pattern) 是一种行为型设计模式,又被称为发布-订阅 (Publish/Subscribe) 模式,它定义了对象之间的一种一对多的依赖关系,使得当一个对象的状态发生变化时,所有依赖于它的对象都会自动收到通知并更新。

二、结构

在观察者模式中有如下角色:

  • Subject:观察对象,定义了注册观察者和删除观察者的方法。此外,它还声明了“获取现在的状态”的方法。
  • ConcreteSubject:具体观察对象,当自身状态发生变化后,它会通知所有已经注册的 Observer 角色。
  • Observer:抽象观察者,负责接收来自 Subject 角色的状态变化的通知,为此,它声明了 update 方法。
  • ConcrereObserver:具体观察者,当它的 update 方法被调用后,会去获取要观察的对象的最新状态。

三、代码实现

1、Observer

package com.xu.demo.observerPattern;/*** 观察者接口*/
public interface Observer {void update(String message);
}

2、ConcreteObserver

 

package com.xu.demo.observerPattern;/*** 观察者实例*/
public class ConcreteObserver implements Observer{private String name;public ConcreteObserver(String name) {this.name = name;}@Overridepublic void update(String message) {System.out.println(name + ": " + message);}
}

3、Subject

package com.xu.demo.observerPattern;/*** 主题接口*/
public interface Subject {//添加订阅者(观察者对象)void attach(Observer observer);//删除订阅者void detach(Observer observer);//通知订阅者更新消息void notify(String message);
}

4、SubscriptionSubject

 

package com.xu.demo.observerPattern;import java.util.ArrayList;
import java.util.List;/*** 主题操作类*/
public class SubscriptionSubject implements Subject{//定义一个集合,用来存储多个观察者对象private List<Observer> observerList = new ArrayList<>();@Overridepublic void attach(Observer observer) {observerList.add(observer);}@Overridepublic void detach(Observer observer) {observerList.remove(observer);}@Overridepublic void notify(String message) {//遍历集合for (Observer observer : observerList) {//调用观察者对象中的 update 方法observer.update(message);}}
}

 5、ObserverPattern

 

 

package com.xu.demo.observerPattern;public class ObserverPattern {public static void main(String[] args) {//1.创建主题对象SubscriptionSubject subject = new SubscriptionSubject();Observer ronnie = new ConcreteObserver("Ronnie");Observer ding = new ConcreteObserver("Ding");Observer trump = new ConcreteObserver("Trump");//2.观察者订阅主题subject.attach(ronnie);subject.attach(ding);subject.attach(trump);//3.更新主题subject.notify("Java专栏更新了!");System.out.println("====================我是分割线==================");//4.观察者取消订阅主题subject.detach(ding);subject.detach(trump);//5.更新主题subject.notify("Python专栏更新了!");}}

运行结果:

至此,一个最简单的 发布-订阅 (Publish/Subscribe) 模式代码实例就完成了,大家认真理解好好体会,你也能成为IT高手,我们下回再见。

http://www.hrbkazy.com/news/42203.html

相关文章:

  • 建设银行个人手机银行下载seo云优化外包
  • 软装设计理念萌新seo
  • wordpress的商城网站制作公司安卓系统优化大师
  • wordpress做视频网站百度网址安全中心怎么关闭
  • 古镇小企业网站建设哪里可以代写软文
  • 建网站昆明seo是什么及作用
  • wordpress 5.2.1英文转中文seo难不难学
  • weui wordpress模板西安seo外包公司
  • 中国电子商务研究中心seo推广服务哪家好
  • 亚洲男女做暖网站百度关键词竞价和收费的方法
  • 内蒙古响应式网站建设百度网站站长工具
  • 网络公司怎么做网站推广软文200字
  • 门户网站建设成本网店推广常用的方法
  • 上海市住房和城乡建设部网站官网优化设计的答案
  • 医疗网站怎么做优化seo案例分析
  • 做影集的网站或软件海南seo代理加盟供应商
  • 网站建设素材什么是seo是什么意思
  • 经济与政府网站建设如何快速推广一个新产品
  • 洪栾单页网站建设76人vs猛龙
  • 淘宝关键词优化技巧教程seopc流量排行榜企业
  • wordpress不同页面布局百度推广优化中心
  • 昆明网站建设wang.cd百度推广登录账号首页
  • 做房产的一般用哪个网站好外包公司
  • 深圳个人外贸网站建seo最新技巧
  • 网站后台建设360收录提交入口网址
  • 淘宝客cms网站模板下载百度搜索资源
  • 徐州网站建设服务2023重大新闻事件10条
  • 网站建设基础书本百度店铺免费入驻
  • 怎么开网站做网红阿里指数官方网站
  • 剖析材料范文哪个网站做的好做搜索引擎推广多少钱