设计模式
qq_389325968
这个作者很懒,什么都没留下…
展开
-
Mybatis深入源码分析之SqlSessionFactory二级缓存原理分析
这里再概括下上篇源码分析内容:一:Mybatis一级缓存mybatis的一级缓存是SqlSession缓存,在操作数据库的时候需要先创建SQL会话对象,在对象中有个HashMap用于存储缓存数据,此HashMap是当前对象私有的,其它SqlSession会话对象无法访问。具体流程:第一次执行select完毕会将查到的数据写入SqlSession内的HashMap中缓存起来 第二...原创 2020-01-16 09:31:13 · 696 阅读 · 1 评论 -
Mybatis深入源码分析之SQLSession一级缓存原理分析
本篇文章,我们继续分析:SQLSession一级缓存原理。一:invoke()方法源码分析首先,当我们调用getMapper的时候,就会进入invoke()方法:// 5.操作Mapper接口UserMapper mapper = sqlSession.getMapper(UserMapper.class);public Object invoke(Object proxy,...原创 2020-01-16 09:29:55 · 440 阅读 · 0 评论 -
Mybatis深入源码分析之Mapper与接口绑定原理源码分析
本章疑问:// 5.操作Mapper接口UserMapper mapper = sqlSession.getMapper(UserMapper.class);public interface UserMapper { public UserEntity getUser(int id);}为什么UserMapper是接口,没用实现类,那么他是怎么初始化的?getMappe...原创 2020-01-16 09:29:15 · 642 阅读 · 0 评论 -
Mybatis深入源码分析之SqlSessionFactoryBuilder源码分析
一:源码分析代码片段public static void main(String[] args) { try { // 基本mybatis环境 // 1.定义mybatis_config文件地址 String resources = "mybatis_config.xml"; // 2.获取InputStreamRea...原创 2020-01-16 09:28:18 · 190 阅读 · 0 评论 -
Spring IOC 容器源码分析——一篇文章读懂Spring5.x
Spring 设计的初衷Spring 则立志于全方面的简化 Java 开发。对此,她主要采取了 4 个关键策略:1、基于 POJO 的轻量级和最小侵入性编程;2、通过依赖注入和面向接口松耦合;3、基于切面和惯性进行声明式编程;4、通过切面和模板减少样板式代码;而他主要是通过:面向 Bean、依赖注入以及面向切面这三种方式来达成的。Spring5 系统架构...转载 2020-01-16 09:26:16 · 228 阅读 · 0 评论 -
Mybatis深入源码分析之基于装饰模式纯手写一级,二级,三级缓存
什么是装饰者模式在不改变原有对象的基础上附加功能,相比生成子类更灵活。装饰者模式应用场景Mybatis缓存,过滤器,网关控制,P2P分控审批装饰者模式定义(1)抽象组件:定义一个抽象接口,来规范准备附加功能的类(2)具体组件:将要被附加功能的类,实现抽象构件角色接口(3)抽象装饰者:持有对具体构件角色的引用并定义与抽象构件角色一致的接口(4)具体装饰:实现...原创 2020-01-16 09:23:27 · 289 阅读 · 0 评论 -
深度Mybatis源码分析——SqlSessionFactoryBuilder(建造者模式),Mapper接口绑定原理(代理模式)
一:源码分析流程图二:源码分析开始public class TestMyBatis { public static void main(String[] args) { try { // 基本mybatis环境 // 1.定义mybatis_config文件地址 String ...原创 2020-01-15 11:49:53 · 131 阅读 · 0 评论 -
单例设计模式源码分析,常用设计模式白话文总结
什么是单例单例模式确保某各类只有一个实例,而且自行实例化并向整个系统提供这个实例。在计算机系统中,线程池、缓存、日志对象、对话框、打印机、显卡的驱动程序对象常被设计成单例。这些应用都或多或少具有资源管理器的功能,每台计算机可以有若干个打印机,但只能有一个Printer spooler,以避免两个打印作业同时输出到打印机中,每台计算机可以有若干通信端口,系统应当集中管理这些通信端口,以避免一个...原创 2020-01-15 11:45:21 · 114 阅读 · 0 评论 -
深入MyBatis源码,理解Java设计模式之适配器模式
什么是适配器模式定义:将一个系统的接口转换成另外一种形式,从而使原来不能直接调用的接口变得可以调用。适配器模式角色划分适配器模式涉及3个角色:1.源(Adaptee):需要被适配的对象或类型,相当于插头。2.适配器(Adapter):连接目标和源的中间对象,相当于插头转换器。3.目标(Target):期待得到的目标,相当于插座。适配器模式包括3种形式:类适配器模式、对象适...原创 2020-01-15 10:51:26 · 123 阅读 · 0 评论 -
真实项目案例实战——【状态设计模式】使用场景
什么是状态模式状态模式允许一个对象在其内部状态改变的时候改变其行为。这个对象看上去就像是改变了它的类一样。状态模式应用场景1.一个对象的行为取决于它的状态,并且它必须在运行时刻根据状态改变它的行为。2.操作中含有庞大的多分支的条件语句,且这些分支依赖于该对象的状态。这个状态通常用一个或多个枚举常量表示。通常,有多个操作包含这一相同的条件结构。State模式将每一个条件分支放...原创 2020-01-15 10:49:08 · 390 阅读 · 0 评论 -
深入Proxy底层源码——实现自己的JDK动态代理
JDK动态代理原理分析在使用jdk动态代理的时候,必须要实现InvocationHandler接口;invoke方法中该三个参数分别表示为: 代理对象、被代理执行的方法、参数public class JdkInvocationHandler implements InvocationHandler { /** * 被代理类对象 目标代理对象 */ pr...原创 2020-01-15 10:37:19 · 299 阅读 · 0 评论 -
浅谈Java【代理设计模式】——看这篇文章就懂了
什么是代理模式为其他对象提供一种代理以控制对这个对象的访问。为什么使用代理模式中介隔离:在某些情况下,一个客户类不想或者不能直接引用一个委托对象,而代理类对象可以在客户类和委托对象之间起到中介的作用,其特征是代理类和委托类实现相同的接口。开闭原则,增加功能:代理类除了是客户类和委托类的中介之外,我们还可以通过给代理类增加额外的功能来扩展委托类的功能,这样做我们只需要修改代理类...原创 2020-01-15 10:31:49 · 91 阅读 · 0 评论 -
”万丈高楼平地起“——如何从“建筑师”角度打造【装饰者设计模式】
什么是装饰者模式在不改变原有对象的基础上附加功能,相比生成子类更灵活。装饰者模式应用场景过滤器,网关控制,P2P分控审批装饰者模式类图装饰者模式定义(1)抽象组件:定义一个抽象接口,来规范准备附加功能的类(2)具体组件:将要被附加功能的类,实现抽象构件角色接口(3)抽象装饰者:持有对具体构件角色的引用并定义与抽象构件角色一致的接口(4)具体装饰:实...原创 2020-01-15 10:30:31 · 145 阅读 · 0 评论 -
【聚合支付平台】如何智用【模板+工厂】设计模式来实现异步回调
异步回调流程解析报文(验证签名) 日志收集(相同) 如果解析报文成功的话,修改支付状态为已经成功.返回不同的支付结果模版方法设计模式提前定义好整体的骨架,不同的行为让子类实现,相同的行为直接定义在抽象类中复用。相同的行为就定在抽象方案中,不同的行为的实现子类实现核心设计要点AbstractClass : 抽象类,定义并实现一个模板方法。这个模板方法定义了算法的...原创 2020-01-15 10:29:50 · 175 阅读 · 0 评论 -
【奇思妙想】如何给网关设计一款专属的权限控制【责任链设计模式】
什么是责任链模式客户端发出一个请求,链上的对象都有机会来处理这一请求,而客户端不需要知道谁是具体的处理对象。这样就实现了请求者和接受者之间的解耦,并且在客户端可以实现动态的组合职责链。使编程更有灵活性。关键点1、有多个对象共同对一个任务进行处理。2、这些对象使用链式存储结构,形成一个链,每个对象知道自己的下一个对象。3、一个对象对任务进行处理,可以添加一些操作后将对象传递个下一个...原创 2020-01-15 10:27:37 · 130 阅读 · 0 评论 -
经典设计模式之策略模式【如何重构聚合支付平台,对接【支付宝,微信,银联支付】】
写在前面:设计模式源于生活,而又高于生活!为什么要使用设计模式重构代码使用设计模式可以重构整体架构代码、提高代码复用性、扩展性、减少代码冗余问题。Java高级工程师装逼的技能!什么是策略模式策略模式是对算法的包装,是把使用算法的责任和算法本身分割开来,委派给不同的对象管理,最终可以实现解决多重if判断问题。1.环境(Context)角色:持有一个Strategy的引用...原创 2020-01-15 10:26:16 · 224 阅读 · 0 评论