GOF23:group of four 23-四人帮的23种模式
- 创建型模式
单例模式、工厂模式、抽象工厂模式、建造者模式、原型模式
- 结构型模式
适配器模式、桥接模式、装饰模式、组合模式、外观模式、享元模式、代理模式
- 行为型模式
模板方法模式、命令模式、迭代器模式、观察者模式、中介者模式、备忘录模式、解释器模式、状态模式、策略模式、职责链模式、访问者模式
单例模式:一个类只有一个对象(实例),并且提供一个访问该唯一实例的全局访问点。
优点:只有一个实例,减少系统开销。
常见的五种单例模式实现方式:
主要:
1、饿汉式(线程安全,调用效率高,但是不能延时加载)
2、懒汉式(线程安全,调用效率不高,但是可以延时加载)
其他:
1、双重检测锁式(由于JVM内部模型的原因,偶尔会出问题)
2、静态内部类式(线程安全,效率高,有延时)
3、枚举式(线程安全,效率高,无延时,能天然放着反射和反序列化漏洞)
实际使用:
1、单例对象,占用资源少,不需要延时加载
枚举式由于饿汉式
2、单例对象,占用资源多,需要延时加载
静态内部类式由于懒汉式