创建型模式之单例模式
来源:互联网 发布:手机excel软件 编辑:程序博客网 时间:2024/05/19 17:06
单例模式是创建型模式的一种,实现单例的类将构造方法私有化,对外提供唯一的实例。
饿汉模式
类被加载的时候即创建实例。因类加载是单线程的,故此方法是线程安全的。
public class Singleton { private static final Singleton singleton = new Singleton(); private Singleton() { } public static Singleton getInstance() { return singleton; }}
懒汉模式
实例第一次被引用的时候才会被创建,需要考虑线程安全。
1. 双重校验锁。
public class Singleton { private static Singleton singleton; private Singleton() { } public static Singleton getInstance() { //确保效率,避免频繁加锁 if(singleton == null) { synchronized (Singleton.class) { //确保线程安全,避免重复创建实例 if(singleton == null) { singleton = new Singleton(); } } } return singleton; }}
2. 静态内部类。
内部类并不归属于外部类一起加载,内部类在被引用时才会被加载,即所谓懒汉。
如饿汉模式所述,类加载是线程安全的。
public class Singleton { private static class SingletonCreator { private static final Singleton singleton = new Singleton(); } private Singleton() { } public static Singleton getInstance() { return SingletonCreator.singleton; }}
枚举模式
枚举从Java 1.5开始被引入,这是一种最简洁有效的单例实现途径。
枚举的特性确保了实例创建的线程安全,且避免实例反序列化时创建新的实例。
public enum Singleton{ INSTANCE; public String otherField; public void otherMethod() { }}
阅读全文
0 0
- 创建型模式之单例模式
- 创建型模式之单例模式
- 创建型模式之单例模式
- 创建型模式之单例模式
- 创建型模式之单例模式
- 创建型模式之单例模式
- 创建型模式之单例模式
- 设计模式之----创建型模式(三)-----单例模式
- 创建型模式之原型模式和单例模式
- 设计模式 创建型模式之单例模式
- 设计模式之创建型模式---单例模式
- Java设计模式之创建型模式--单例模式
- 设计模式之创建型模式(1)--单例模式
- 创建型之单例模式
- 创建型模式之单态模式
- 创建模式之单例模式
- 设计模式-创建型模式之 Singleton(单例)
- 创建型模式之单例模式(Singleton)
- iOS 宏(define)与常量(const)的理解
- linux find 通配符(新人向)
- 字符串练习14_大小写字母互换
- Mybatis快速入门
- 记录一个简单SpringBoot项目的创建过程
- 创建型模式之单例模式
- android exoplayer实现左右滑动屏幕快进快退
- 一个异常:java.lang.NoClassDefFoundError
- [笔记分享] [Display] MIPI 协议之PHY
- AR Index
- Make your own Neural NetWork之代码详解上
- ubuntu下安装invidia显卡驱动
- PHP(冒泡,快速,选择,插入)排序
- 滚动条消息(WM_VSCROLL和WM_HSCROLL)