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

摄影作品网站有哪些网页设计制作网站模板图片

摄影作品网站有哪些,网页设计制作网站模板图片,在线设计工具的网站怎么做,做jsp网站的步骤观察者模式是软件开发中常用的一种设计模式,它通过定义一对多的依赖关系,使得一个对象(主题)的状态变化可以通知多个其他对象(观察者)。 这种模式的优点是解耦和增加扩展性,用于实现对象之间的…

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

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

如果要自己编码实现,我们通常定义一个主题接口(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.dinnco.com/news/66554.html

相关文章:

  • 网站哪个公司做的比较好的网站建设7个基本流程
  • 佛山企业网站制作电子商务网站设计方案
  • 做网站反链网络营销理论基础
  • 昭通网站建设环球网最新消息
  • 网站哪个好推广网站推广
  • 云南网站建设锐网关键词排名技巧
  • 网站访问者qq什么是网络营销与直播电商
  • 怀柔 做网站的深圳网络推广哪家公司好
  • 做外贸的网站开店流程南京seo公司
  • 住房及城乡建设部信息中心网站河南seo推广
  • 针对网站做搜索引擎做优化百度关键词优化软件网站
  • 网站备案用户名公司网站推广
  • 响应式网站手机端尺寸考研最靠谱的培训机构
  • 淘宝店铺可以做网站优化么seo是什么牌子
  • 上海网站建设公司排名微信小程序开发费用一览表
  • 如何申请自己的网站空间六六seo基础运营第三讲
  • html5 中文网站模板找相似图片 识别
  • 福州网站设计哪里比较好百度关键词排名联系
  • 网站的图书资源建设网络营销的主要手段和策略
  • 如何建一个手机网站网站设计说明
  • 徐汇网站开发培训电子商务网站开发
  • 青岛贸易公司 网站制作南京百度seo
  • 建设网站如何写文案营销推广的平台
  • 没有下载功能的视频怎么下载资源网站优化排名优化
  • 溧阳网站定制seo外链推广工具
  • 福州企业自助建站网站更换服务器对seo的影响
  • 哪些网站可以做商家精准营销名词解释
  • 网站搭建完手机访问网络营销员岗位的职责与要求
  • 网站制作外包台州网站建设平台
  • 如何查看网站开发者google搜索引擎入口网址