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

织梦网站模板安装本地百度点击器找名风

织梦网站模板安装本地,百度点击器找名风,.tv做网站怎么样,网站建设培训报名一、前言 观察者模式,又称为发布订阅模式,是一种行为设置模式,允许对象之间建立一对多的依赖关系,这样当一个对象状态改变时,它的所有依赖者(观察者)都会收到通知并自动更新。 二、具体实现 …

一、前言

观察者模式,又称为发布订阅模式,是一种行为设置模式,允许对象之间建立一对多的依赖关系,这样当一个对象状态改变时,它的所有依赖者(观察者)都会收到通知并自动更新。

二、具体实现

1、发布订阅案例

观察者接口:

/*** @Description: 观察者接口* @Date: 2024-12-27 10:08* @Author: gaoyufei**/
public interface Observer {void accept(String message);
}

观察者实现:

/*** @Description: 订阅者* @Date: 2024-12-27 10:10* @Author: gaoyufei**/
public class Subscriber implements Observer{public String clientId;public Subscriber(String clientId){this.clientId=clientId;}@Overridepublic void accept(String message) {System.out.println("订阅者:"+clientId+" 接受到消息:"+message);}
}

主题接口:

/*** @Description: 主题接口* @Date: 2024-12-27 10:15* @Author: gaoyufei**/
public interface Subject {void add(Observer observer);void del(Observer observer);void notify(String message);
}

主题实现:

import java.util.ArrayList;
import java.util.List;/*** @Description: 主题,维护了订阅者列表,通知订阅者* @Date: 2024-12-27 10:16* @Author: gaoyufei**/
public class Topic implements Subject {private List<Observer> observerList=new ArrayList<>();@Overridepublic void add(Observer observer) {observerList.add(observer);}@Overridepublic void del(Observer observer) {observerList.remove(observer);}@Overridepublic void notify(String message) {observerList.stream().forEach(e->{e.accept(message);});}
}

模拟订阅者订阅主题,客户端发布消息:

/*** @Description: 模拟订阅者订阅主题,客户端发布消息* @Date: 2024-12-27 10:18* @Author: gaoyufei**/
public class Client {public static void main(String[] args) {Topic topic=new Topic();Subscriber subscriber1=new Subscriber("001");Subscriber subscriber2=new Subscriber("002");Subscriber subscriber3=new Subscriber("003");topic.add(subscriber1);topic.add(subscriber2);topic.add(subscriber3);topic.notify("您有一条新消息!");}
}

2、村长通知村民案例

观察者接口:

/*** @Description: 观察者接口* @Date: 2024-12-27 9:35* @Author: gaoyufei**/
public interface Observer {void accept(String message);
}

观察者具体观察者村民:

/*** @Description: 具体观察者,村民,能接受消息* @Date: 2024-12-27 9:37* @Author: gaoyufei**/
public class Resident implements Observer{private String name;public Resident(String name){this.name=name;}@Overridepublic void accept(String message) {System.out.println("村民:"+this.name+"  收到信息:"+message);}
}

抽象主题:

/*** @Description: 抽象主题* @Date: 2024-12-27 9:39* @Author: gaoyufei**/
public interface Subject {void add(Observer observer);void del(Observer observer);void notify(String message);
}

主题的具体实现,村长的记录本:

import java.util.ArrayList;
import java.util.List;
/*** @Description: 主题的具体实现,村长的记录本,维护了村民信息,村长可以通过记录本给村民群发信息* @Date: 2024-12-27 9:42* @Author: gaoyufei**/
public class RecordBook implements Subject {private List<Observer> observerList = new ArrayList<>();@Overridepublic void add(Observer observer) {observerList.add(observer);}@Overridepublic void del(Observer observer) {observerList.remove(observer);}@Overridepublic void notify(String message) {observerList.stream().forEach(e -> {e.accept(message);});}
}

村长登记村民信息,用记录本给村民群发信息:

/*** @Description: 村长登记村民信息,用记录本给村民群发信息* @Date: 2024-12-27 9:44* @Author: gaoyufei**/
public class VillageHead {public static void main(String[] args) {
//        1、村里,村长有一个记录村民电话的本子,村民都需要登记一下。
//        在村里有什么事情的时候,村长就通过群发消息的方式通知村民。
//        2、村民就是观察者、订阅者,村长发布信息,记录本就是主题,RecordBook recordBook=new RecordBook();Resident resident=new Resident("王满银");Resident resident1=new Resident("孙玉亭");Resident resident2=new Resident("孙玉厚");recordBook.add(resident);recordBook.add(resident1);recordBook.add(resident2);recordBook.notify("大家好,今天下午三点来村支部开会,有重要事情通知!");}
}
http://www.yidumall.com/news/65784.html

相关文章:

  • 网站数据分析视频四川企业seo
  • 网页界面设计一般使用的分辨率关键词优化到首页怎么做到的
  • 如何做微信网站防封谷歌下载
  • 酒店 网站构建域名注册查询
  • 佛山响应式网站建设优化大师下载安装app
  • angularjs 网站开发优化方案官网电子版
  • 开通公司网站怎么开通网站一级域名和二级域名区别
  • 网站需要网监备案企业营销策划合同
  • 珠海培训网站建设线上营销怎么做
  • 邢台哪里有做网站的广东东莞今日最新消息
  • 浦江网站建设微信开发想要网站导航推广
  • 论坛网站html模板zac seo博客
  • 做网站如何报价网站怎么开发
  • 怎么判断网站是不是模板做的dy刷粉网站推广马上刷
  • 网站建设与维护经营范围怎么在百度上推广
  • 东营有能做网站优化最新推广赚钱的app
  • 有没有专做于投融资的网站网站怎么优化推荐
  • 做网站第二年要续费吗教育培训机构排名
  • 宣传信息网网站规划书互联网营销主要学什么
  • 自己的网站怎么做搜索引擎百家联盟推广部电话多少
  • 吉林长春有做网站的吗东营seo整站优化
  • 广州最新病毒感染情况百度seo规则
  • 襄阳文明建设投诉网站最新百度关键词排名
  • 做网站读什么专业微信营销的模式有哪些
  • wordpress制作企业网站百度百科分类方法
  • 免费做商城网站杭州哪家seo公司好
  • 做外贸一般在什么网站肇庆网站推广排名
  • 哪里有做网站的公司网易最新消息新闻
  • 网站后台怎么添加模板google浏览器官网入口
  • 长沙做无痛肠镜东大医院l网站哈尔滨seo关键词排名