![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
文章平均质量分 60
鲜卑大帝
在互联网大潮中挣扎的miller.fan。
展开
-
手把手教你实现一个 EventBus 框架
一、事件总线管理的“原材料”观察者的基础信息,维护的是观察者以及它收到消息后需要执行的方法;二、事件总线的核心-注册表注册表示实现事件总线框架时最复杂的部分,我们提供两个基本功能,注册观察者和发消息(执行观察者的逻辑);这个类大量使用了 Java 的反射语法,不过我已经在代码中为大家详细的标明每一行代码的意义,理解起来并不难。这里使用了CopyOnWriteArraySet,顾名思义,在写入数据的时候,会创建一个新的 set,并且将原始数据 clone 到新的 set 中,在新的 set 中写入原创 2022-06-21 11:19:27 · 618 阅读 · 1 评论 -
Mybatis源码分析---Mybatis二级缓存中的责任链模式
一、Mybatis的源码写的像艺术品Mybatis的代码设计的非常有观赏性,其中大量使用设计模式,并且用的非常棒;比如Mybatis将日志功能委托给其他的日志框架使用的是适配器模式加工厂模式实现的;Mybatis的插件是通过代理模式+责任链模式实现的;Mybatis的二级缓存是装饰器模式+责任链模式实现的;读源码不仅可以让我们了解其底层技术细节,有利于提高我们自己的编码能力,也可以学习这些优秀的框架中采用什么样的数据结构?引入了什么算法?组件的抽象遵循了什么样的设计原则?二、实现二级缓存的需求分析原创 2022-05-17 17:32:12 · 623 阅读 · 0 评论 -
责任链模式的设计要义以及经典应用
1、提取责任链模式的藕和丝设计模式之责任链模式:使用“藕断丝连”的设计哲学去解释,“请求的发送”和“请求的接收”是2节藕,而handlerChain是丝。这是我在工作和学习中总结的设计最高要义:“藕断丝连”。2、责任链模式的设计要义将框架级别的代码抽象到抽象类之中,将具体逻辑下放给不同的逻辑单元。责任链可以使用数组或者链表来实现,维护责任链的工作包括新增节点,触发链上的工作。责任链模式各“逻辑单元”被维护在数据中或者链表中,一个某个逻辑单元已经成功处理了“请求”,那么就停止请求在“责任链原创 2021-11-14 16:33:43 · 482 阅读 · 0 评论 -
Prototype模式 通过复制生成实例
框架:1、接口package com.polo.proto.fremework;public interface Product extends Cloneable{ public abstract void use(String s); public abstract Product createClone();}2、使用者package com.p...原创 2020-02-08 19:50:36 · 119 阅读 · 0 评论 -
西红柿炒鸡蛋解释设计模式之模板模式
一、模板设计模式的核心模板模式的核心是:父类定好流程,具体的各个步骤交给子类们自己去实现。这样可以一类多用,不必因为一点类似的改动修改原来的接口或者代码。二、举例和代码/** * @program: data-structure * @description: 模板 * @author: Miller.FAN * @create: 2020-02-01 14:21 **/...原创 2020-02-01 14:48:25 · 394 阅读 · 0 评论 -
设计模式之遍历器模式 Iterator
一、 遍历器大家都用过,内部是如何实现的,该模式设计有什么内涵呢?二、遍历器模式的角色组成2个接口+3个类,无继承,有聚合和实现关系。三、代码举例1、遍历器接口public interface Iterator { public abstract boolean hasNext(); public abstract Object next();}2、...原创 2020-01-29 17:17:53 · 227 阅读 · 0 评论