[HeadFirst]观察者模式 - 老王跳灰机的故事

news/2024/7/4 8:25:38 标签: float, class, 设计模式, string, 测试, object
class="baidu_pl">
class="article_content clearfix">
class="htmledit_views">

写博客,看博客,要的是直接进入主题,不要太多的前戏,否则读者看着看着就没了兴趣。

所以直接看设计模式-观察者模式的图示介绍:

 

所谓的主题,即被观者的对象,当这个对象发生变化的时候,对象发出通知,那么订阅了这个主题的订阅者,会接受到通知并进行相关的操作。订阅者可以订阅多个主题,一个主题也可以被多个订阅者订阅。

 

注意的是,这个地方的所谓的主题、订阅者、通知,是否是和notify相同呢?答案的非也,notify是esb的一种,涉及到消息中心、发送者、订阅者三个方面,而且消息的发送者是不区分数据是否变更的,而是一旦有需要,就直接发送消息,不同的内容的消息,订阅者订阅特定类型的消息进行处理。

 

 

这里我们举一个例子,老王开灰机,灰机的前翅子如果参数异常,就让老王跳机。那么看看代码吧:

 

飞机的前翅子,也就是被观察的对象:

 

注意其中的参数变化的时候,是手动触发发送通知的!

 

飞机的平衡机,也就是观察者

接收到消息之后,先判断是哪种类型,因为可能订阅者订阅了多种主题。

 

测试代码:


http://www.niftyadmin.cn/n/1639131.html

相关文章

Elasticsearch批量索引和删除

批量索引和删除 Java代码 收藏代码 BulkRequestBuilder bulkRequest client.prepareBulk(); for(int i500;i<1000;i){ //业务对象 String json ESUtils.toJson(new LogModel()); IndexRequestBuilder indexReques…

[Memcache] 初探Memcache

Memcache (http://memcached.org/) memcache 是一种分布式缓存服务器&#xff0c;和通常使用的非分布式的ecache不同&#xff0c;memcache需要独立的服务器支撑&#xff0c;客户端通过配置IP地址和端口号&#xff08;默认11211&#xff09;与之连接并使用API进行数据的缓存操作…

[JST]不支持for(var i=0;ilength;i++)问题解决方法

Trimpath的循环语法支持遍历列表或者数组&#xff0c;如果我们在模板中希望能够使用传统的for循环的方式 for(var i0;i<length;i) 来实现根据定义数字大小指定遍历次数&#xff0c;则无法使用{for(i in length)}来完成&#xff0c;因为length不是列表也不是数组&#xff0c;…

[lucene]使用lucene建立网站搜索服务

lucene是一个全文检索引擎&#xff08;非分布式&#xff09;&#xff0c;使用java编写并且可以很方便的嵌入到各种系统中以实现全文检索功能&#xff0c;其通过对字符串进行分词&#xff0c;然后针对分词结果分别建立索引&#xff0c;存入内存或者磁盘&#xff0c;以提供搜索服…

Elasticsearch性能优化建议

之前公司项目中有使用Elasticsearch存储日志&#xff0c;当时使用的功能简单&#xff0c;并没有深入了解Elasticsearch&#xff0c;但是对于该支持文本搜索的存储架构还是很感兴趣&#xff0c;最近因为想在一个新项目中采用ELK&#xff08;ElasticsearchLogstashKibana&#xf…

elasticsearch 查询优化建议

最近在做一些索引相关的优化测试&#xff0c;顺便记录一下测试以及效果 1&#xff1a;优化mapping 主要包括 doc_values , index , norms &#xff0c; type的keyword和text // 效果明显 doc_values属性 用于把数据序列化到磁盘&#xff0c;使索引结构更紧密 默认为tru…

[lucene第二季]利用缓存辅助精确更新索引

在上一篇的lucene的入门篇中&#xff0c;我们编写了一个帮助系统&#xff0c;从数据库中将具体的信息获取出来并使用CJKAnalyzer分词后建立索引&#xff0c;提供针对于关键字的搜索服务&#xff0c;其中我们采用定时器的方式每隔10分钟更新一次索引&#xff0c;更新的方式为先删…

[lucene]倒排笔记

lucene的倒排算法相关笔记&#xff1a; 计算文章中关键字出现的位置以及出现频率&#xff0c;以便于精准定位。 百度的定义&#xff1a;用记录的非主属性查找记录而组织的文件&#xff0c;叫倒排文件&#xff0c;或者 倒排索引&#xff0c;次索引 lucene不使用B树&#xff0…