欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > 文章正文

Java学习记录01,2、避免使用多重条件

来源: javaer 分享于  点击 10049 次 点评:88

Java学习记录01,2、避免使用多重条件


营销核心
营销核心是让利,外围是怎么去让利,三环是公共平台

策略模式学习
意图:定义一系列方法将其封装,并且相互可以替代

目的:解决if-else带来的复杂性和难以维护性

关键实现:多个方法类实现同一个接口

应用场景:回家方式:走路,共享单车,私家车支付类型:微信,银行卡,支付宝

优点: 1、算法可以自由切换。 2、避免使用多重条件判断。 3、扩展性良好。

缺点: 1、策略类会增多。 2、所有策略类都需要对外暴露。

策略模式类关系图:

pipeline模式学习
pipeline模式即管道模式,是责任链模式的变体。在管道模式中,管道扮演着流水线的角色,将数据传递到一个加工处理序列中,数据在每个步骤中被加工处理后,传递到下一个步骤进行加工处理,直到全部步骤处理完毕,区别于责任链模式的一个处理器只处理一次。

pipeline关系图:

一条Pipeline有一个Context,多个Valve。这些Valve是很小的、单元化的,一个Valve只做一件简单的事。前后Valve之间的通信由Context来承载。

es学习
es反向索引
MySQL前置模糊查询无法走索引,并无法对关键词拆分进行二次查询,es利用反向索引,将关键词用分词器拆分成多个terms,对其在 terms index(内存查找)中进行查询获取到对应 terms在 terms dictionary 中的位置,经过一次磁盘IO,获取到 terms 对 documents id 的映射,接下来就是正常索引的查找过程了。

查询流程: Term Index 是一棵字典树,存储了terms的前缀,通过前缀匹配找到对应前缀在 Term Dictionary中的块,将整个块加载到内存中,对其进行二分查找,找到对应的term,再找到对应的 Posting List(IDs)。

关系型数据库与es对比

es查询

相关栏目:

用户点评