单列模式

2024-02-27  本文已影响0人  小动乾坤
单列模式思维导图

定义:在运行时数据区里面,指定类A的实列对象有且只能有一个

提示:饿汉式和懒汉式的区分标准:目标类A要设计为单列,类A加载的时候实列对象就创建了,饿汉式,需要类A进行相应的方法调用才才创建对象,懒汉式

饿汉式:类加载时创建实列对象

静态代码块写法

组合静态成员变量写法

优点:通过类加载过程规避并发问题

缺点:类加载和类的对象使用并不是绑定在一起的,类加载的时候初始化实列对象,后续如果用不上,本质就是出现了内存内存泄漏问题

懒汉式:实列获取方法调用时才有机会触发对象的创建过程

线程安全的写法但推荐使用的写法

双重检查写法 静态内部类写法

静态内部类写法代码特征:

1.单列目标类A构造方法私有化

2.类A内嵌一个类B,B静态组合类A

3.类A提供方法,这个方法直接访问类B静态组合的成员变量A的实列对象

类A加载时单列对象未实列化,类A方法调用时触发内部类B加载,B加载规避并发问题并初始化实列对象

枚举:还能防止反序列化重新创建新的对象

线程安全但不推荐使用的写法

同步方法-并发吞吐量不优秀

非线程安全的写法只能单线程下使用

暴力判断对象是否创建过,没有创建的话创建并返回,不做任何并发处理

上一篇 下一篇

猜你喜欢

热点阅读