单例模式
来源:互联网 发布:胖子丁丁小吗 知乎 编辑:程序博客网 时间:2024/06/06 14:27
有些对象我们只需要一个,比如:配置文件,工具类,线程池,缓存,日志对象等。如果创造出多个实例,就会导致出现结果不一致等问题。
我们可以通过单例模式来保证只有一个对象:
(一)饿汉模式
/** * 饿汉模式,类加载的时候已经创建了实例。 * 即使用户没有调用getInstance() * @author admin * */public class Singleton { //1.将构造方法私有化,不允许外部直接创建对象。 private Singleton(){ } //2.在类的内部创建唯一实例,使用private static修饰 private static Singleton instance=new Singleton(); //3.提供一个获取实例的方法,使用public static修饰 public static Singleton getInstance(){ return instance; }}
(二)懒汉模式
/** * 懒汉模式:类加载的时候没有创建唯一的实例。 * 当第一个用户获取实例的时候创建实例 * 后面的用户不用创建实例 */public class Singleton2 { //1.构造方法私有化,外部不能直接创建对象 private Singleton2(){} //2.创建类的唯一实例 private static Singleton2 instance; //3.提供一个获取实例的方法,使用public static修饰 public static Singleton2 getInstance(){ if(instance==null) instance=new Singleton2(); return instance; }}
(三)饿汉模式和懒汉模式的区别
饿汉模式的特点是加载类的时候比较慢,但是运行的时候获取对象的速度比较快。懒汉模式,加载类的时候比较快,但是运行的时候获取对象的速度比较慢。饿汉模式是线程安全的,而懒汉模式不安全。
0 0
- 单例、单例模式
- 单例模式-多线程单例模式
- 单件模式(单例模式)
- 设计模式------单例模式
- 设计模式------单例模式
- 设计模式-单例模式
- 设计模式 - 单例模式
- 设计模式---单例模式
- 设计模式---单例模式
- PHP模式-单例模式
- 【设计模式】单例模式
- 设计模式-单例模式
- 设计模式----单例模式
- 设计模式--单例模式
- 设计模式-单例模式
- 单例模式(单子模式)
- 设计模式-单例模式
- [设计模式] 单例模式
- 打印三角形
- LightOJ 1370Bi-shoe and Phi-shoe(欧拉函数)
- 自己想要的到底是什么?what do you want?
- (2)iOS用UICollectionView实现Gallery效果
- 源码免杀系列教程
- 单例模式
- ANSI/ISO_C POSIX GLIBC WIN32 种种C标准的概念区分
- UVa694 - The Collatz Sequence(模拟)
- 参数化查询速度慢
- Objective C基础(四)---Category、Extension、Protocol
- 紐百倫鞋 2lxO VUK Rp3oB
- Linux命令速查(带参数说明)
- The Complexities of Concurrency
- 01.(最新版)百度地图§环境配置