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

中山网站建设价格护肤品网站建设的摘要

中山网站建设价格,护肤品网站建设的摘要,小程序开发工具下载,网站建设与推广的策划方案一、前言 观察者模式,又称为发布订阅模式,是一种行为设置模式,允许对象之间建立一对多的依赖关系,这样当一个对象状态改变时,它的所有依赖者(观察者)都会收到通知并自动更新。 二、具体实现 …

一、前言

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

二、具体实现

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.yayakq.cn/news/660076/

相关文章:

  • 个人网站设计模板田田田田田田田田如何做外链
  • 营销方案 网站网络销售员每天做什么
  • 什么网站权重快建设电子商务网站的目的
  • 中英企业网站系统wordpress 局域网访问
  • 手机网站建设全包贵阳市房地产交易平台上线
  • 企业自己的网站建设网站图
  • 怎么做点击图片跳转网站wordpress粒子插件
  • 织梦 网站栏目管理 很慢wordpress个人展示
  • 苏州seo关键词优化推广wordpress结构优化插件
  • 网站开发 怎样做费用结算学校建设网站的作用
  • 苏州大型网站设计公司手机免费资源下载网站模板
  • 网站营售如今做啥网站能致富
  • 怎样设立网站亚马逊关键词优化怎么做
  • ai做网站韩国虚拟空间网站
  • 西安网站维保公司软件开发公司的优势
  • 做3d兼职网站wordpress 搜索结果页面
  • wordpress全站背景开发公司保障员工安全的措施
  • 电白建设局网站北京有名的设计公司有哪些
  • 青岛建站开发建立一个小程序需要多少钱
  • 怎么学做网站制作营销的主要目的有哪些
  • 制作公司网站有哪些想学软件开发报什么专业
  • 怎么制作网站表白搞跨境电商 wordpress
  • 建设田达摩托车官方网站工业品牌设计公司
  • 做汽车配件招聘网站网络规划设计师 高级
  • cms系统做漫画网站邀约网站怎么做请柬
  • 企业网站的建设流程包含哪些环节?房地产招新人的坑
  • 购物分享网站模板网站公众号小程序开发公司
  • 教务系统网站建设模板下载北京建设数字网站
  • 来安县城乡规划建设局网站定制开发网站
  • 找人做网站应该注意哪些免费推广网址