知识总结-设计模式

项目中常用的设计模式有:模板模式、策略模式、建造者模式、工厂模式、单例模式、代理模式、观察者模式、适配器模式

  1. 模板模式:通过继承覆写父类的某些方法的方式达到插入自定义代码片段的目的,如:JDK类加载器的双亲委派模型。

  2. 策略模式:调用同一个方法传入统一接口的不同实现对象,返回统一格式的结果,到达控制流程和代码复用的目的。
    策略模式和模板模式的功能都是控制算法实现步骤和代码复用,且允许插入私有的功能代码片段。两者不同点是模板模式是通过继承覆写父类的某些方法的方式达到插入自定义代码片段的目的,而策略模式是通过传入同一个接口的不同实现类的方式                      达到插入自定义代码片段的目的。

  3. 建造者模式:假设我要new 一个person对象,我用建造者模式的话是 Person.createBuilder().appendName("maple").appendAge(18).build();
  4. 单例模式:内部类饿汉式 或者 懒汉式 volatile 和 双重判断锁。  懒汉式 加 volatile 是为了禁止指令重排序,如果不加 volatile的话,可能其他线程判断对象已经存在但是调用时发现对象初始化不完全的情况。双重锁是较少加锁导致的性能浪费。
  5. 代理分为静态的代理和动态代理。动态代理分为cglib代理和jdk动态代理,其中jdk动态代理利用了反射,首先代理对象调用 invocationhandle的invoke方法 ,然后 invoke 方法 又调用了 入参method 的 invoke(对象,args)方法。 cglib 的话是通过继承覆写父类方法的方式实现增强代码的插入
  6. 观察者模式:Springboot 框架里面的事件监听 applicationEventPublisher.publishEvent(applicationEvent)   、@EventListener
  7. 适配器模式:AbstractExecutorSerive的 submit 支持 callable和runnable入参,是因为通过runnableadapter将runnable对象适配成了返回值为空的callable对象。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值