简单的几种单例模式原理
单例模式:顾名思义就是一个类中只能有一个实例,它必须保证自己的实例唯一,限制访问权限,并且不可被外部创建。
下面我们一起来演示看看吧。
1、懒汉式
原理:创建类时存放一个null的变量 未创建实例,构造器访问权限设置为私有,控制访问权限,在类加载的时候加载static,判断是否为null,如果为null则创建一个单例,如果有则直接返回(线程不安全)。
2、饿汉式
原理:构造器私有控制访问权限,用static在加载类的时候就创建实例,再通过类可直接调用方法(线程不安全)。
3、DCL
原理:(线程安全)以第一个单例为例,我们给他加上synchronized控制它的调用,避免有两者同时第一次去调用时同时创建实例。
4、枚举
原理:枚举类似类,一个枚举可以拥有成员变量,成员方法,构造方法,枚举式单例,枚举的创建由JVM保证,因此不会出现并发问题,构造器自动私有,外部不能创建,只能引用。
以上就是几种简单的单例模式,本人也在学习阶段,望多给建议一起探讨!!