目录
门面模式-调停者模式
使用的应用:MQ,消息中间件,为了解藕
工厂模式
形容词用接口,名词用抽象类
- 简单工厂
- 静态工厂(可以把单例模式认为是)
- 工厂方法
- 产品维度扩展
- 抽象工厂
- 产品一族扩展
- spring的IOC
- 通过xml配置,生成bean实例
IOC: 控制反转 / DI依赖注入
策略模式
- 接口
- Comparable(compareTo方法)
- Comparator(策略模式,实现java.lang的接口)
单例模式
- 概念
内存中只有一个实例
- 代码版本
- 饿汉式
- 懒汉式(带来多线程不安全)
- 加synchronized(安全但是效率降低)
- DCL(new对象CPU指令重排序,要加volitale)
- 静态内部类(JVM只会加载一次)
public class A { private A() { } private static class AHolder { private final static A INSTANCE = new A(); } public static getInstance() { return AHolder.INSTANCE; } }- 枚举单例
public enum A { INSTANCE; } 解决线程同步,还有反序列化后生成不了实例(原因是枚举没有构造方法,反射获取不了)- spring的bean工厂