我的java设计模式 总结【1】单例 Singleton
2020-06-30 17:48
102 查看
文章目录
singleton 单例模式
这个就是单例模式,再一个程序中只能有一个对象实例;或者说唯一的一个对象实例。
几种实现办法
第一种 直接初始化
public class A{ static A a=new A(); private A(){} public static A getInstance(){ return a; } }
第二种 双重检查加锁
public class A{ static volatile A a; private A(){} public static A getInstance(){ if(a==null) { synchronized(A.class){ if(a==null) a=new A(); } } return a; } }
第三种 静态内部类
public class A{ private A(){} private static class AHolder(){ private final static A a= new A(); } public static A getInstance(){ return AHolder.a; } }
第四种 枚举实现
enum A{ instance; }
总结说明
- 第一种,最常用的方式;俗称硬汉式,不管你用不用先加载了。
- 第二种,与第一种的相对来说,用的时候再加载,俗称懒汉式;双重检查并具有线程的安全。
- 第三种,号称最完美的单例模式;相比第二种采用静态内部类机制来实现,当加载A的时候并不会去加载A的内部类AHolder 只有当调用A.getinstance时才会去加载AHolder并出示话内部类中的变量a并返回。同样是单例与同样的懒汉式,具体的唯一与线程安全是有jvm的机制 一个Class只会被加载一次这个原理实现。做到了简单,不用加锁,不用判断。
- 第四种,号称最最最完美的单例模式 ;利用枚举来实现单例方法。不但做到了实例唯一,线程安全,代码最少,而且还防止反序列化【enum是无法被反序列化为枚举类型的,是因为enum类型没有构造函数 ,这样就没法通过java反射来实现】
相关文章推荐
- java设计模式之Singleton(单态)
- 关于JAVA设计模式中的Singleton
- Java:设计模式之单例模式(Singleton)
- 创建型设计模式---JAVA Singleton模式(单身模式)
- java设计模式之创建模式--singleton (demo)
- Java设计模式:Singleton(单态模式)
- java23种设计模式总结
- JAVA设计模式之-Singleton模式
- java语言讲解singleton的编程思想---深入浅出单实例Singleton设计模式
- 关于java中static关键字在单态设计模式的应用学习和总结
- java设计模式总结
- JAVA设计模式—结构型模式总结
- JAVA常用设计模式总结(单例,工厂,抽象工厂)
- 黑马程序员_java的IO流(对第十九课字符缓冲区及装饰设计模式的总结)
- Java与模式读后总结--设计原则汇总
- java 设计模式总结
- Java设计模式连载_1_单例模式(Singleton)
- java设计模式学习系列之一:单例模式(Singleton)
- java设计模式之单例模式Singleton
- java设计模式之Singleton(单例)