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

惠安建设局网站外包是什么意思

惠安建设局网站,外包是什么意思,网页设计元素,东营优化路网观察者模式 一.简介二. 案例2.1 抽象主题#xff08;Subject#xff09;2.2 具体主题#xff08;Concrete Subject#xff09;2.3 抽象观察者#xff08;Observer#xff09;2.4 具体观察者#xff08;Concrete Observer#xff09;2.5 测试 三. 结论3.1 优缺点3.2 使用… 观察者模式 一.简介二. 案例2.1 抽象主题Subject2.2 具体主题Concrete Subject2.3 抽象观察者Observer2.4 具体观察者Concrete Observer2.5 测试 三. 结论3.1 优缺点3.2 使用场景 前言 这是我在这个网站整理的笔记,有错误的地方请指出关注我接下来还会持续更新。 作者神的孩子都在歌唱 一.简介 百度百科 观察者模式是一种对象行为模式。又被称为发布-订阅Publish/Subscribe模式 它定义对象间的一种一对多的依赖关系当一个对象的状态发生改变时所有依赖于它的对象都得到通知并被自动更新。在观察者模式中主体是通知的发布者它发出通知时并不需要知道谁是它的观察者可以有任意数目的观察者订阅并接收通知。观察者模式不仅被广泛应用于软件界面元素之间的交互在业务对象之间的交互、权限管理等方面也有广泛的应用。 个人理解 这个模式在日常开发中很常见比如a服务想要b服务磁盘满的时候通知它那么它只需要把自己的grpc或者http接口给到b服务b服务订阅后如果磁盘满了就调用a服务注册的接口 通知。 在观察者模式中有如下角色 抽象主题Subject 它把所有观察者对象的引用保存到一个聚集里每个主题都可以有任何数量的观察者。抽象主题提供一个接口可以增加和删除观察者对象。具体主题Concrete Subject 将有关状态存入具体观察者对象在具体主题内部状态改变时给所有登记过的观察者发出通知。抽象观察者Observer 为所有的具体观察者定义一个接口在得到主题通知时更新自己。具体观察者Concrete Observer 实现抽象观察者角色所要求的更新接口以便使本身的状态与主题状态协调。 二. 案例 我将实现一个简单的主题Subject观察者Observer可以注册到该主题。每当有新消息发布到主题时所有注册观察者都会收到通知并且他们可以使用该消息。 这里是基本Subject接口它定义了任何具体主题要实现的接口方法。 2.1 抽象主题Subject /*** author chenyunzhi* date 2024/6/5 17:13* Description 主题*/ public interface Subject {/*** 注册观察者*/void register(Observer observer);/*** 取消观察者*/void unregister(Observer observer);/*** 通知观察者消息有更新*/void notifyObservers();}2.2 具体主题Concrete Subject /*** author chenyunzhi* date 2024/6/5 17:21* Description 实现主题*/ public class SubjectImpl implements Subject{/*** 同步锁*/private final Object SUB new Object();/*** 存储注册的观察者*/private final ListObserver observers new ArrayList();/*** 要通知的消息*/private String message;/*** 防止 notifyObservers方法被外部调用发送错误通知*/private boolean flag;Overridepublic void register(Observer observer) {if (observer ! null) {synchronized (SUB) {// 如果不在就存储if (!observers.contains(observer)) {observers.add(observer);}}}}Overridepublic void unregister(Observer observer) {if (observer ! null) {synchronized (SUB) {observers.remove(observer);}}}Overridepublic void notifyObservers() {ListObserver objects new ArrayList();//使用同步方法确保通知仅发送给新消息前注册的观察者synchronized (SUB) {if (!flag) {return;}objects this.observers;this.flag false;}for (Observer observer:objects) {// 通知观察者有消息更新observer.update(this.message);}}/*** 自定义一个消息变更方法方便测试*/public void updateMessage(String message) {System.out.println(消息有变更通知注册的观察者);this.message message;this.flag true;// 通知notifyObservers();} }2.3 抽象观察者Observer /*** author chenyunzhi* date 2024/6/5 17:14* Description 观察者类*/ public interface Observer {/*** 定义要更新的方法由主题调用*/void update(String msg); }2.4 具体观察者Concrete Observer /*** author chenyunzhi* date 2024/6/5 17:59* Description 观察者实现类*/ public class ObserverImpl implements Observer{/*** 观察者名称*/private final String observerName;public ObserverImpl(String name) {this.observerName name;}Overridepublic void update(String msg) {System.out.println(observerName 接收到消息: msg);} }2.5 测试 /*** author chenyunzhi* date 2024/6/6 14:57* Description 观察者模式测试*/ public class ObserverPatternTest {public static void main(String[] args) {// 创建观察者并注册到主题SubjectImpl subject new SubjectImpl();subject.register(new ObserverImpl(观察者1));subject.register(new ObserverImpl(观察者2));subject.register(new ObserverImpl(观察者3));// 测试 更新消息subject.updateMessage(订阅的主题有消息更新了);} }三. 结论 3.1 优缺点 1.优点 降低了目标与观察者之间的耦合关系两者之间是抽象耦合关系。被观察者发送通知所有注册的观察者都会收到信息【可以实现广播机制】 2.缺点 如果观察者非常多的话那么所有的观察者收到被观察者发送的通知会耗时如果被观察者有循环依赖的话那么被观察者发送通知会使观察者循环调用会导致系统崩溃 3.2 使用场景 对象间存在一对多关系一个对象的状态发生改变会影响其他对象。当一个抽象模型有两个方面其中一个方面依赖于另一方面时。 作者神的孩子都在歌唱 本人博客https://blog.csdn.net/weixin_46654114 转载说明务必注明来源附带本人博客连接。
http://www.hkea.cn/news/14550342/

相关文章:

  • 网站结构形式专业网站建设费用包括
  • 自己能建网站吗南京江北新区房价走势最新消息
  • 网站赚流量treeson wordpress
  • 北京seo公司网站教做网站的学校
  • 虚拟商品交易网站建设做外贸推广
  • 国外flash网站欣赏温州市城乡建设信息港
  • 在哪个网站开发国外客户网站开发可以用两种语言吗
  • 做企业网站设计价格是多少钱能做视频的软件有哪些
  • 广州做企业网站哪家好做年会的网站
  • 网站后台 网页编辑器岳阳做网站
  • 公司网站在百度搜不到wordpress是php吗
  • 网站设计开发人员快餐小吃加盟方案
  • 建设部网站王尚春国外域名
  • 中国建设银行网站公积金查询余额杭州关键词排名提升
  • 专门做游戏攻略的网站公司集团网站设计
  • 唯品会一家专做特卖的网站简单网站建设优化推广
  • 网站代码软件wordpress媒体库图片不显示
  • dede网站怎么设置首页烟台网站排名优化报价
  • 做网站注册商标哪一类网站建设方案的策划书
  • 黄村网站开发公司公司营销型网站公司
  • 家装设计网站怎么做分类信息有哪些网站
  • 厦门启明星网站建设广州公司建设网站
  • 网站开发与建设广州百度推广外包
  • 焦作网站建设服务德阳公司做网站
  • 石家庄公司网站建设桂林象鼻山是什么地貌
  • 怎么把网站放到百度做erp系统的网站
  • 个体户做网站去哪里做适合企业员工培训的课程
  • 搜索网站排行国家高新技术企业公示
  • 做网站主要显哪些内容网站开发动态结构设计
  • 怎么查网站是谁建的石家庄市城乡和建设局网站