设计模式之单例设计模式

设计模式之单例设计模式

1、饿汉式
饿汉式-方式1(静态变量方式)
饿汉式-方式2(静态代码块方式)
饿汉式-方式3 (枚举方式)

2、懒汉式
懒汉式-方式1(线程不安全)
懒汉式-方式2(线程安全)方法上加synchronized,但是性能比较查,因为读也要获取锁,合理是只有写的时候,才需要获取锁。
懒汉式-方式3(双重检查锁),写在if判断里面 ,但是因为指令重排序的问题,所以需要再变量加上volatile。
懒汉式-方式4(静态内部类方式)

2.单例模式存在的问题

单例模式被破坏
1、序列化反序列化破坏单例模式
2、反射破坏单例模式

问题解决
1、序列化、反序列方式破坏单例模式的解决方法
2、反射方式破解单例的解决方法
关于枚举类单例模式为什么不会被破坏

原文地址

你可能感兴趣的:(设计模式)