ningendo

随笔分类 -  设计模式

模板方法模式,AQS源码
摘要:一.介绍 模板方法模式实际上就是相当于,将一些共有的方法和属性放在父类即抽象类里,然后将一些变化的方法,即可能形成多态特性的方法放在子类里。 1.先定义一个模板抽象类,在抽象类里定义一个通用的方法,即比较固定的方法,称为模板方法。 2.定义一些抽象的方法,具体给子类实现,在模板方法里调用这些抽象方法 阅读全文

posted @ 2020-12-12 01:37 Lunamonna 阅读(187) 评论(0) 推荐(0)

策略模式之Spring 解析xml配置文件分析
摘要:一.介紹 策略模式的作用,主要是把一段业务抽象出一个接口,为上层服务调用。派生出不同的类来实现不同的算法和逻辑。然后就可以根据参数的传入和配置文件,来切换不同的策略功能。 好处,拓展性强,新加一个功能,添加一个类即可,且不同类之间,关联小,耦合度松,符合开闭原则。 缺点,功能和多时,需要的类也十分多 阅读全文

posted @ 2020-11-22 22:49 Lunamonna 阅读(245) 评论(0) 推荐(0)

从StringBuilder来看Builder模式
摘要:一.角色 二.作用 1.将字符做了缓存,避免了重复的new String对象,造成内存的开销。 2.封装了字符的拼接,和移除方法,不需要关心内部字符串的操作,起到了解耦效果。 三.String代码分析 像常用的substring,replace,concat等方法,均会创建新的对象。 以下来自 op 阅读全文

posted @ 2020-10-30 01:51 Lunamonna 阅读(139) 评论(0) 推荐(0)

组合模式1(netty CompositeByteBuf)
摘要:一.组合模式作用以及场景 1.当对象之间具有部分和整体结构时,比如目录与子目录,总类和子类,父节点和子节点。 2.当子对象操作可以统一处理时 二.复合缓冲区 Composite Buffer Composite Buffer是Netty特有的缓冲区。本质上类似于提供一个或多个ByteBuf的组合视图 阅读全文

posted @ 2020-10-01 19:15 Lunamonna 阅读(522) 评论(0) 推荐(0)

Builder模式实战2 (Spark/SparkSession)
摘要:一.目的 通过实际的SparkSession代码来熟悉并且深入理解Builder的作用 Builder模式实战1 二.SparkSession创建 //常规创建 val sparkSession = SparkSession.builder() .appName("Common") .master( 阅读全文

posted @ 2020-09-15 01:07 Lunamonna 阅读(851) 评论(0) 推荐(0)

Builder模式实战1
摘要:一.目的 通过实际的项目代码来熟悉并且深入理解Builder的作用,并了解该模式的优缺点. 二.作用 Builder模式的作用 1.简化代码结构 当一个类中属性比较多时,而构建对象时,也并非每一个属性都要用。如果此时用构造函数来够造对象.时,需要重载多次构造方法。或者使用一个方法需要重载多次。 重载 阅读全文

posted @ 2020-09-07 15:17 Lunamonna 阅读(147) 评论(0) 推荐(0)

适配器设计模式实战2
摘要:一.目的 结合源码来深入理解适配器模式,本文通过java.sql的源码来讲解适配器模式的思想 适配器模式介绍可参考 适配器模式实战1 二.业务场景介绍 在编写服务端代码时,我们需要使用数据库,而数据库种类繁多,最常用的关系型数据库mysql,oracle等,不同的数据库由不同的组织和公司开发,所以a 阅读全文

posted @ 2020-08-26 20:53 Lunamonna 阅读(169) 评论(0) 推荐(0)

适配器设计模式实战1
摘要:一.目的 结合项目源码来深入理解适配器模式,本文通过mybatis3源码中的log适配来介绍适配器模式 二.介绍和作用 适配器模式(Adapter Pattern) 在项目中一般可以将代码分为调用方和提供服务方,一般来说调用方希望使用一个统一的接口来调用服务,而服务方往往来自第三方库或者第三方代码, 阅读全文

posted @ 2020-08-21 18:45 Lunamonna 阅读(130) 评论(0) 推荐(0)

导航