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

问政东营山东seo百度推广

问政东营,山东seo百度推广,河北农业建设信息网站,网络系统的价值跟用户数量成观察者模式是软件开发中常用的一种设计模式,它通过定义一对多的依赖关系,使得一个对象(主题)的状态变化可以通知多个其他对象(观察者)。 这种模式的优点是解耦和增加扩展性,用于实现对象之间的…

观察者模式是软件开发中常用的一种设计模式,它通过定义一对多的依赖关系,使得一个对象(主题)的状态变化可以通知多个其他对象(观察者)。

这种模式的优点是解耦和增加扩展性,用于实现对象之间的松耦合通信。

如果要自己编码实现,我们通常定义一个主题接口(Subject)和一个观察者接口(Observer)。主题接口中包含注册观察者、移除观察者和通知观察者的方法,而观察者接口中则定义了更新状态的方法。具体的主题类和观察者类实现这些接口,并进行相应的业务逻辑实现。

考虑到实现简单点,我们假定有一个广播类,这个广播类实际上就是一个主题Subject,有多个听众收听这个广播,这里每个听众就是一个观察者Observer

定义一个主题Subject的接口类

/*** 主题,被观察者*/
public interface Subject {/*** 添加观察者*/void addObserver(Observer observer);/*** 移除观察者*/void removeObserver(Observer observer);/*** 通知观察者*/void notifyObserver(String message);
}

定义一个观察者Observer的接口类

/*** 观察者*/
public interface Observer {void recieve(String message);}

接下来,就是定义一个广播的类,用来实现主题接口 

/*** 广播,负责向听众广播消息*/
public class Broadcast implements Subject{private final List<Observer> observerList = new ArrayList<>();@Overridepublic void addObserver(Observer observer) {observerList.add(observer);}@Overridepublic void removeObserver(Observer observer) {observerList.remove(observer);}@Overridepublic void notifyObserver(String message) {for (Observer observer : observerList) {observer.recieve(message);}}
}

再定义一个听众类,用来实现观察者接口

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

 写一个测试类来测试结果

public class Test {public static void main(String[] args) {Broadcast broadcast = new Broadcast();Audience audience1 = new Audience("哈尔滨听众");Audience audience2 = new Audience("大庆听众");broadcast.addObserver(audience1);broadcast.addObserver(audience2);broadcast.notifyObserver("中央电视台黑龙江电视台");broadcast.notifyObserver("黑龙江电视台中央电视台");broadcast.removeObserver(audience2);broadcast.notifyObserver("大庆听众关了广播");}}

结果打印如下 

解释一下,广播了两拨消息,2名听众都收到了这两拨消息。后面移除了一个听众,广播了第三波消息,这时,只有剩下的那个听众收到了广播消息

http://www.khdw.cn/news/62155.html

相关文章:

  • 网站的ico图标做多大成都网络推广
  • 大众点评做团购网站中国突然宣布大消息
  • 响应式网站检测工具淘宝权重查询
  • 专业建设特色亮点seo入门书籍
  • 深圳东门新冠东莞搜索优化十年乐云seo
  • 东阳哪里可以做网站百度电话客服24小时
  • 漫画网站做任务给金币seo快速排名的方法
  • 织梦制作网站如何上线嘉兴seo网络推广
  • 最简单的网站建设语音十大网络营销经典案例
  • 网站建设视频讲解一站式网站设计
  • 使用帝国做软件下载网站源码公司网页制作模板
  • 网站的论坛怎么做百度官网首页登陆
  • 展示系统 网站模板免费下载河北seo网络优化师
  • 做微课常用的网站有哪些百度推广关键词匹配模式
  • 理财网站建设方案书推广网站源码
  • 建设网站目标最佳的资源磁力搜索引擎
  • 商城模板全套泰州网站优化公司
  • 建筑网站源码百度一下你就知道百度一下
  • 百度链接提交工具怀化seo推广
  • 微信 网站 优劣势市场营销说白了就是干什么的
  • 茶叶销售网站源代码花西子网络营销策划方案
  • 怎么做传奇网站信息流广告投放
  • 群晖可以做几个网站百度seo发帖推广
  • 网站百度推广和优化樱桃bt官网
  • jsp是网站开发语言吗企业宣传软文范例
  • 筑巢网站建设怎么样如何创建网站的快捷方式
  • 小程序在哪个网站做电商网站开发平台有哪些
  • 手机测评做视频网站商城网站开发公司
  • 做导师一般去什么网站找素材seo排名优化排行
  • asp动态网站被攻击优化关键词排名公司