![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
文章平均质量分 51
小甄笔记
这个作者很懒,什么都没留下…
展开
-
ThreadLocal详解
threadLocal转载 2022-11-14 18:03:09 · 386 阅读 · 0 评论 -
io.protostuff.ProtostuffIOUtil序列化
序列化、反序列化原创 2022-11-14 13:51:56 · 813 阅读 · 0 评论 -
装饰者模式
在不改变原有类的基础上,扩展原有对象的功能。 与适配器不同之处在于,装饰者注重类的继承(同宗同源),而适配器注重接口的转换。 组成: 抽象构建角色(被装饰接口) 具体构建角色(被装饰类) 抽象装饰角色(装饰接口) 具体装饰角色(装饰类)...原创 2020-11-17 18:23:24 · 67 阅读 · 0 评论 -
适配器模式
适配器实现适配器对象需要实现原有接口适配器对象组合一个实现新接口的对象(这个对象也可以不实现一个接口,只是一个单纯的对象)对适配器原有接口方法的调用被委托给新接口的实例的特定方法(适配的目的就是扩展)代码实例原来的项目中使用到了一个类ESPMenu,随着项目的迭代进行,ESPMenu能表述的信息太少了,如果想扩展就只能加字段,扩展性极差无法满足需要public class ESPMenu { private String id; private String caption; p原创 2020-11-17 17:08:34 · 332 阅读 · 1 评论 -
代理模式
简介JDK实现动态代理需要实现类通过接口定义业务方法,对于没有接口的类,如何实现动态代理呢,这就需要CGLib了。CGLib采用了非常底层的字节码技术,其原理是通过字节码技术为一个类创建子类,并在子类中采用方法拦截的技术拦截所有父类方法的调用,顺势织入横切逻辑。JDK动态代理与CGLib动态代理均是实现Spring AOP的基础。JDK动态代理代理步骤: (1)定义一个事件管理器类实现invocationHandle接口,并重写invoke(代理类,被代理的方法,方法的参数列表)方法。..原创 2020-11-16 16:05:49 · 58 阅读 · 0 评论 -
工厂设计模式
工厂模式分为:简单工厂模式、工厂方法模式、抽象工厂模式简单工厂模式代码如下:产品类:abstract class BMW { public BMW(){ }} public class BMW320 extends BMW { public BMW320() { System.out.println("制造-->BMW320"); }}public class BMW523 extends BMW{ public BMW523(){ System.out原创 2020-11-10 20:17:22 · 110 阅读 · 0 评论 -
策略模式
策略模式定义:策略模式定义了一系列的算法,并将每一个算法封装起来,使每个算法可以相互替代,使算法本身和使用算法的客户端分割开来,相互独立。策略模式的作用:就是把具体的算法实现从业务逻辑中剥离出来,成为一系列独立算法类,使得它们可以相互替换。策略模式的着重点:不是如何来实现算法,而是如何组织和调用这些算法,从而让我们的程序结构更加的灵活、可扩展开闭原则:对于扩展是开放的(Open for extension)。这意味着模块的行为是可以扩展的。当应用的需求改变时,我们可以对模块进行扩展,使其原创 2020-11-05 13:44:25 · 557 阅读 · 0 评论 -
设计模式
23种设计模式汇总整理设计模式分为三大类:创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式结构型模式,共七种:适配器模式、装饰者模式、代理模式、外观模式、桥接模式、组合模式、享元模式。行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。其实还有两类:并发型模式和线程池模式设计模式的六大原则:总原则-开闭原则对扩展开放,对修改封闭。在程序需要进行拓展的原创 2020-11-05 11:35:34 · 82 阅读 · 0 评论 -
单例模式s
池到处都能看到,httpsession,线程池,数据库连接池,redis连接池,MQ连接池。。。频繁使用且创建本消耗高创建模式可以通过单例模式或者xml配置模式,单例模式分为懒汉式和饿汉式懒汉式需要双重锁定public class ThreadPoolService { private static final int DEFAULT_CORE_SIZE=100; private static final int MAX_QUEUE_SIZE=500; privat原创 2020-11-03 16:26:22 · 121 阅读 · 1 评论