继续设计模式,这个模式用得应该很频繁啊,而且也比较简单,如果现在你还不能纸笔随手写个单例出来,你就得加油了哈~
直接介绍几种线程安全的且我觉得还比较不错的方式:
1、是不是号称恶汉,就是类加载就初始化了
package com.zhy.pattern.singlton;
public class Singleton
{
private static Singleton instance = new Singleton();
public static Singleton getInstance()
{
return instance ;
}
}
2、懒汉,我喜欢这种,需要双重判断
package com.zhy.pattern.singlton;
public class Singleton02
{
private static Singleton02 instance;
public static Singleton02 getInstance()
{
if (instance == null)
{
synchronized (Singleton02.class)
{
if (instance == null)
{
instance = new Singleton02();
}
}
}
return instance;
}
}
3、使用Java的枚举,还是很推荐的,简单的跟神马一样,如果对枚举不熟悉,小google一下
public enum Singleton03
{
INSTANCE;
}
4、使用一个持有类,主要是为了不在初始化的时候加载
package com.zhy.pattern.singlton;
public class Singleton04
{
private static final class InstanceHolder
{
private static Singleton04 INSTANCE = new Singleton04();
}
public static Singleton04 getInstance()
{
return InstanceHolder.INSTANCE;
}
}
好了,就这么多,以上4种都是比较推荐使用的,除了第一种会类加载的时候初始化,其他3中都不会,且4种都保证线程安全,特殊情况(除了多个类加载器,和你非要通过反射等手段生成多个对象)不考虑。
分享到:
相关推荐
设计模式之单例模式 懒汉式,饿汉式,同步枷锁
设计模式单例模式
单例模式和工厂模式结合应用,实现了产品的生产,适合用做课程设计,包含详细文档和代码。Java语言。喜欢的可以下载来看看那
设计模式专题之(一)单例模式---设计模式单例模式示例代码(python--c++)
设计模式单例模式PPT学习教案.pptx
设计模式专题之(一)单例模式---设计模式单例模式模式示例代码(python--c++)
李建忠老师的设计模式-单例模式讲解,示例以C++编程语言呈现。
//单例模式,始终只产生一个对象 /*public class SingleTest { public static void main(String[] args) { SingleTon singleTon1=SingleTon.getInstance(); SingleTon singleTon2=SingleTon.getInstance(); ...
是http://blog.csdn.net/lxq_xsyu/article/category/1544127博客中java设计模式的源代码。下载前请先看《设计模式——单例模式》一文。
细心整合和单例模式和工厂模式的几种模型,懒汉式,饿汉式,如何并发操作模式,等都有详细讲解
23种设计模式之工厂方法模式对工厂方法模式进行了简单的介绍,并附带了例子程序,和大家分享
MVC 设计模式 单例模式 MVC模式是"Model-View-Controller"的缩写,中文翻译为"模式-视图-控制器"。MVC应用程序总是由这三个部分组成。
设计模式实验报告
设计模式之单例模式 设计模式之单例模式 设计模式之单例模式
首先向关注过我这个系列...这立刻让我想到了最常用也是最简单最容易理解的一个设计模式 单例模式 何为 单例模式 ? 故名思议 即 让 类 永远都只能有一个实例。 由于 示例代码 比较简单 我也加了注释,这里就不在赘述
C++单例设计模式,单例模式 C++单例设计模式,单例模式
java 设计模式 mvc模式 单例模式 代理 工厂 简单工厂
入名所示,该文件为最详细的Java单例模式讲解并附有讲解代码。主要讲了单例模式的几种方法,懒汉模式、饿汉模式、静态内部类模式。着重讲解了懒汉模式下怎么实现线程安全。饿汉模式和静态内部类模式如何设置能够避免...
NULL 博文链接:https://linxingliang.iteye.com/blog/1217811
主要介绍了Java设计模式单例模式(Singleton)用法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下