随笔分类 -  设计模式

设计模式 - Immutable 模式(Java不变集合类 vs Google Guava不变集合类)
摘要:总结 JDK中的unmodifiableList的构造函数是对原始集合的浅拷贝, 而Guava.ImmutableList.copyOf是对原始集合的深拷贝 public class ImmutableDemo { public static void main(String[] args) { L 阅读全文

posted @ 2023-11-10 16:49 frank_cui 阅读(20) 评论(0) 推荐(0) 编辑

设计模式 - 边车模式 SideCar
摘要:一、场景引入 如果我们前期的微服务没有相关的服务治理功能,要对所有的微服务做一些升级该如何下手?主要包括服务治理:监视、日志记录、限流、熔断、服务注册、协议适配转换等。 下面介绍的边车模式就是很好解决该问题的一个方法之一。 二、什么是边车模式 边车模式也叫搭档模式、伴侣模式或跟班模式。生活中的原型就 阅读全文

posted @ 2023-02-16 13:15 frank_cui 阅读(370) 评论(0) 推荐(0) 编辑

设计模式 - 代理模式 和 装饰模式 有什么区别?
摘要:总结 1.装饰器模式关注于在一个对象上动态的添加方法,然而代理模式关注于控制对对象的访问。 2.换句话 说,用代理模式,代理类(proxy class)可以对它的客户隐藏一个对象的具体信息。因此,当使用代理模式的时候,我们常常在一个代理类中创建一个对象的实例。并且,当我们使用装饰器模 式的时候,我们 阅读全文

posted @ 2021-09-20 14:57 frank_cui 阅读(317) 评论(0) 推荐(0) 编辑

设计模式 - 建造者模式 Builder Pattern
摘要:总结 什么情况下,适用于builder模式(建造者模式)? 当一个类的构造函数参数个数超过4个,而且这些参数有些是可选的参数,考虑使用构造者模式。 为了避免构造函数的参数列表过长、不同的构造函数过多,我们一般有builder模式+setter方法两种解决方案。为何builder更胜一筹? sette 阅读全文

posted @ 2021-03-08 22:38 frank_cui 阅读(78) 评论(0) 推荐(0) 编辑

设计模式 - 单例模式
摘要:1.【不好的解法】只适用于单线程环境 缺陷:当两个线程同时执行到 if (instance == null) 时,两个线程均会创建一个实例 //只适用于单线程环境 public class Singleton{ //将无参构造函数私有化,避免外部自行初始化 private Singleton(){} 阅读全文

posted @ 2021-01-15 15:34 frank_cui 阅读(82) 评论(0) 推荐(0) 编辑

设计模式 - 静态代理 VS 动态代理
摘要:QA 动态代理是什么?有哪些应用? 动态代理是运行时动态生成代理类。 动态代理的应用有 spring aop、hibernate 数据查询、测试框架的后端 mock、rpc,Java注解对象获取等。 怎么实现动态代理? JDK 原生动态代理和 cglib 动态代理。 JDK 原生动态代理是基于接口实 阅读全文

posted @ 2020-10-25 22:34 frank_cui 阅读(225) 评论(0) 推荐(0) 编辑

设计模式 - SPI(Service Provider Interface)模式
摘要:参考 清幽之地 https://www.jianshu.com/p/3a3edbcd8f24 一、什么是SPI SPI ,全称为 Service Provider Interface,是一种服务发现机制。它通过在ClassPath路径下的META-INF/services文件夹查找文件,自动加载文件 阅读全文

posted @ 2020-07-31 00:38 frank_cui 阅读(2147) 评论(0) 推荐(0) 编辑

设计模式 - 模板方法模式 Template Method
摘要:总结 该模式在父类中定义了一个“主流程方法Template Method”(或者称作骨架方法),主流程方法包含了许多空/非空的“子方法”。这些子方法(被称作钩子方法),可以被不同的子类实现自己独特的逻辑,但是又不破坏父类中的主流程方法逻辑。使得不同的子类中,“流程一致,具体逻辑不同”。 详细解析 假 阅读全文

posted @ 2020-07-18 17:22 frank_cui 阅读(187) 评论(0) 推荐(0) 编辑

设计模式 - 委托模式
摘要:总结 使用场景 把自己不会做的事情,交给专业的对象去做。和名字很类似。 关键点 发起委托的人,要持有一个真正做事情的对象的实例。 详细解析 比如,“买房”这个动作是一个接口/抽象类。 public interface BuyHouse{ public void buy(); } 有两个具体类“我自己 阅读全文

posted @ 2020-07-18 16:39 frank_cui 阅读(547) 评论(0) 推荐(0) 编辑

设计模式 - 装饰模式Decorator
摘要:总结 何时使用 在不想增加很多子类的情况下扩展类时 优点 装饰类和被装饰类可以独立发展,而不会相互耦合。它有效地把类的核心职责和装饰功能分开了 装饰模式是继承关系的一个替代方案 装饰模式可以动态地扩展一个实现类的功能 详细解析 https://www.cnblogs.com/adamjwh/p/90 阅读全文

posted @ 2020-07-18 16:17 frank_cui 阅读(106) 评论(0) 推荐(0) 编辑

< 2025年2月 >
26 27 28 29 30 31 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 1
2 3 4 5 6 7 8

导航

统计

levels of contents
点击右上角即可分享
微信分享提示