设计模式

2020年11月23日 阅读数:10
这篇文章主要向大家介绍设计模式,主要内容包括基础应用、实用技巧、原理机制等方面,希望对大家有所帮助。

设计模式总共23种,能够归结为3大类设计模式

  1. 建立型:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。
  2. 结构型:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。
  3. 行为型:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。

比较经常使用的设计模式有:单例模式、工厂模式、代理模式、构造者模式、责任链模式、适配器模式、观察者模式等。并发

单例模式

单例模式是最多见的设计模式了,这里主要说一下这种设计模式的实现方式ui

  1. 静态初始化方式(饿汉方式),顾名思义,也就是在初始类的时候实现单例的建立,这种方式不会产生并发问题,缺点是不管会不会使用都会建立对象占用资源。
  2. 双重检查方式(懒汉方式),这种方式就是只有在真正使用的时候才去初始化单例,这样就不可避免的有并发问题了,这里能够加 synchronized 或者 lock。
  3. 单例注册表方式,其实也就是 Spring 中 Bean 的单例模式。

工厂模式

工厂模式主要用来建立不通的实例,例如 Spring 中各类 Bean 的建立。设计

代理模式

代理模式就是指不直接引用另外一个对象,能够经过这种方式对被代理对象的访问进行控制。其中代理模式又分为静态代理和动态代理,静态代理就是指写死在源代码里的,动态代理是指在 JVM 运行过程当中动态建立的代理类,通常有 JDK 动态代理、CGLIB 等。代理

构造者模式

构造者模式主要适用于一个对象有不少复杂的属性,须要根据不一样状况建立不一样的具体对象,就是咱们平时用的 builder 模式。对象

责任链模式

责任链模式有点像工厂的流水线,链上每个节点完成对对象的某一种处理。事件

适配器模式

适配器模式就是把两种不匹配的对象进行适配,相似于转接头,例如 SLF4J 。资源

观察者模式

观察者模式也叫作发布订阅模式,意指一个对象的行为会触发其余一系列的事件。原型