设计模式
文章平均质量分 92
茯苓1998
这个作者很懒,什么都没留下…
展开
-
Elasticsearch-BulkRequest和BulkProcessor简述
BulkRequest和BulkProcessor都可以用来批量处理请求,但二者的使用流程和设计理念有所不同BulkRequest主要使用流程RestHighLevelClient restHighLevelClient = new RestHighLevelClient();//创建一个es客户端,用于执行请求BulkRequest bulkRequest = new BulkRequest(); //创建一个批量请求IndexRequest indexRequest1 = new Inde原创 2021-06-05 23:19:14 · 8369 阅读 · 4 评论 -
设计模式--组合模式
案例编写程序展示一个学校院系结构,需求是这样,要在一个页面中展示出学校的院系组成,一个学校有多少个学院,一个学院有多少个系传统解决方案采用继承的方式传统解决方案带来的问题这种方案实际上是站在组织大小上来进行分层次的,不能很好的实现管理操作,比如对学院,系的增加,删除,遍历等使用组合模式解决问题OrganizationComponent:组织的统一接口,定义了add,remove,print三个接口方法,并默认实现了add,removeDepartment:系,是叶子节点(没有聚合其他的组原创 2020-11-15 21:45:18 · 133 阅读 · 0 评论 -
设计模式--外观模式
案例组建一个家庭影院:DVD播放器,投影仪,自动屏幕,环绕立体声,爆米花机,灯光,要求完成使用家庭影院的功能,其过程为:直接用遥控器统筹各设备开关开爆米花机放下屏幕开投影仪开音响开DVD,选dvd去拿爆米花调暗灯光播放观影结束后,关闭各种设备传统解决方案客户端直接创建并调用各子系统的相关功能方法传统解决方案带来的问题在客户端直接调用子系统的方法,会造成调用过程混乱,没有清晰的过程,同时客户端过多的关注子系统的内部实现,使得客户端调用子系统的难度升高,不利于维护对子系统的原创 2020-11-15 15:08:49 · 199 阅读 · 0 评论 -
设计模式--享元模式
案例现在需要开发一个围棋小游戏,围棋有很多黑白棋子,两个人对弈的时候不断地拿起棋子,摆放在棋盘上。传统解决方案下棋过程中,每次创建一颗黑或白棋子,交由下棋者将棋子摆放到棋盘上的某一位置传统解决方案带来的问题可能会造成系统存在很多的棋子实例,造成内存浪费用享元模式解决问题棋子自身的属性除了颜色不相同外基本都相同(内部属性),而棋子的位置是不定的(外部属性),我们可以把所有棋子抽象成两颗棋子(黑和白),这样可以大大节省系统内存Chess:是抽象的享元角色,它是产品的抽象类,同时定义出对象的外部原创 2020-11-10 15:28:18 · 170 阅读 · 0 评论 -
设计模式--代理模式
三种代理模式代理模式:为一个对象提供一个替身,以控制对这个对象的访问,即通过代理对象访问目标对象。这样做的好处是可以在目标对象实现的基础上,增强额外的功能操作,即扩展目标对象。被代理的对象可以是远程对象,创建开销大的对象或需要安全控制的对象。代理模式有不同的形式,主要有三种静态代理JDK代理cglib代理代理模式示意图静态代理静态代理在使用时,需要定义接口或者父类,被代理对象(即目标对象)与代理对象一起实现相同的接口或者是继承相同父类静态代理优缺点:优点:在不修改目标对象的功能前提原创 2020-11-09 22:40:56 · 139 阅读 · 0 评论