概述
目录
1、介绍
2、特点
3、懒汉式
4、饿汉式
1、介绍
单例模式是非常简单的一种设计模式,属于创建型模式,它提供了一种创建对象的最佳方式
确保某一个类只有一个实例,而且自行实例化并向所有其他对象提供这个实例
主要解决:一个全局使用的类频繁地创建与销毁。
有两种实现模式,懒汉式和饿汉式
2、特点
- 单例类只有一个实例对象
- 私有化构造方法,不允许被外界调用
- 该单例对象必须由单例类自行创建(通过getInstance())
- 单例类对外提供一个访问该单例的全局访问点(getInstance()方法public static)
3、懒汉式
被调用时,会判断对象是否已存在,只有第一次调用的时候会去创建这个实例
是否线程安全:懒汉式本身是线程不安全的,在getInstance方法上加synchronized保证线程安全
效率:加了锁,执行效率就低了
public class LazySingleton {
private static LazySingleton instance = null;
构造函数设为private,这样不允许通过调用构造方法来实例化该类
private LazySingleton() {}
//synchronized保证线程安全
public static synchronized LazySingleton getInstance() {
if (instance == null) {
return new LazySingleton();
}
return instance;
}
}
4、饿汉式
饿汉式一旦加载就创建一个单例,保证在调用 getInstance 方法之前单例已经存在了
是否线程安全:线程安全,但是类加载时就初始化会浪费内存
效率:没有加锁,效率高
public class HungarySingleton {
private static HungarySingleton instance = new HungarySingleton();
HungarySingleton(){}
public static HungarySingleton getInstance() {
return instance;
}
}
最后
以上就是知性丝袜为你收集整理的设计模式之单例模式(创建型模式)1、介绍2、特点3、懒汉式4、饿汉式的全部内容,希望文章能够帮你解决设计模式之单例模式(创建型模式)1、介绍2、特点3、懒汉式4、饿汉式所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复