设计模式-遇见的场景

一、单例模式

1.单例模式的特点

  - 私有构造器

  - 私有自己属性

  - 对外静态实例方法

2.分类

  懒汉式

    用到的时候再去创建,有延迟加载的作用

    线程不安全

  饿汉式:

    一开始就创建好,但是容易产生垃圾

    线程安全

  双重检测锁(DCL):

    第一次检查为了不必要的锁;

    第二次检查,是检查当前线程,返回实例;

    volatile是保证线程的可见性、静止指令重排 

3.应用

  Spring bean作用域是单例的,就利用了单例模式

二、工厂模式


1.工厂可以代替new,给我们生产对象
2.Spring的ioc就利用了工厂模式,具体:ApplicationContext和BeanFactory


三、代理模式

 


1.通过代理类,我们可以访问到被代理类的某些方法,并且在执行该方法的前后进行一些拦截操作
2.springAOP


四、设配器模式


1.适配一些不兼容的接口,比如Springmvc中的HandlerAdper,他就是用来适配不同实现方式的controller的
2.controller的三种实现方式:Controller接口,HttpRequestHandler接口,@Controller注解


五、策略模式


比较器Comparators,线程池的四种拒绝策略

 


六、模板模式

1.定义模板,具体实现由子类来实现
AQS

 

posted @ 2020-08-15 10:43  木叶小寒江  阅读(89)  评论(0编辑  收藏  举报