单例模式(饿汉模式和懒汉模式)
来源:互联网 发布:百家cms v4.1.4 编辑:程序博客网 时间:2024/04/28 22:23
最常见的单例模式应用:日志和数据库连接!
/** * 单例模式之饿汉模式(特点:一开始就创建) */public class Singleton1 { /** * 私有化构造方法,防止外部调用创建对象 */ private Singleton1() { } /** 类加载时就创建 */ private static final Singleton1 singleObj = new Singleton1(); /** * 给外围提供统一获取对象入口 * * @return */ public static Singleton1 getIntance() { return singleObj; }}
/** * 单例模式之懒汉模式(特点:要用到的时候才创建) * 特殊点:当多线程的场合,一开始会创建多个对象,所以此场景下懒汉模式不适用 */public class Singleton2 { /** * 私有化构造方法,防止外部调用创建对象 */ private Singleton2() { } /** 初始化对象为空,当需要的时候再创建 */ private static final Singleton2 singleObj = null; /** * 给外围提供统一获取对象入口 * * @return */ public static Singleton2 getIntance() { // 当对象为空的时候就创建 if (singleObj == null) { return new Singleton2(); } // 否则就直接返回 return singleObj; }}
饿汉模式和懒汉模式的区别在于实例创建的时机,饿汉模式是在该类加载时即被创建,而懒汉模式则是在需要获取时才进行创建。
但是:懒汉模式只在单线程中适用,当在多线程时,都进行if判断时,就会产生多个该类的实例,就不符合单例模式的原则,也不符合程序的需要。
所以根据实际情况而使用相应的模式!
0 0
- 单例模式中的懒汉模式和饿汉模式
- 单例模式(饿汉模式和懒汉模式)
- 单例模式(饿汉模式和懒汉模式)
- 单例模式的懒汉模式和饿汉模式
- 单例模式(饿汉模式和懒汉模式)
- 单例模式,饿汉模式和懒汉模式
- 单例模式之 懒汉和饿汉模式
- 单例模式(懒汉模式、饿汉模式)
- 单例模式(懒汉模式与饿汉模式)
- 单例模式(饿汉模式、懒汉模式)
- 单例模式之 --饿汉模式与懒汉模式
- Java 单例模式之饿汉模式 懒汉模式
- 单例设计模式-懒汉饿汉
- 单例模式的饿汉和懒汉
- 单例模式--饿汉和懒汉异同
- 单例模式 懒汉实现和饿汉实验
- 单例模式:饿汉和懒汉式
- 懒汉单例模式
- Java8新增的Lambda表达式
- 文化苦旅
- iptables里面的dport和sport
- Entity Framework之Database First生成模式
- C语言进阶_笔记 第一章 必须理清的核心概念
- 单例模式(饿汉模式和懒汉模式)
- 51单片机 简易温度采集与控制装置
- 有多少爱 就有多少原谅
- JAVASE--JAR包、基本数据类型对象包装类、日期和时间
- BZOJ 3454 家族 并查集
- 遇一人白首 择一居终老
- UIBeziberPath创建颜色渐变图案
- C# 泛型详解
- Ilya and Escalator - CodeForces 518 D 概率dp