前往顾页
以后地位: 主页 > 收集编程 > Jsp实例教程 >

java中单例形式的4种实现体例

时候:2018-01-09 23:56来源:知行网www.zhixing123.cn 编辑:麦田守望者

单例形式(Singleton Pattern)是 Java 中最简朴的设想形式之一。这类范例的设想形式属于建立型形式,它供应了一种建立工具的最好体例。

这类形式触及到一个单一的类,该类卖力建立本身的工具,同时确保只需单个工具被建立。这个类供应了一种拜候其独一的工具的体例,可以直接拜候,不需求实例化该类的工具。

java中单例模式的4种实现方式

第一种:饿汉式

public class Singleton {

private static Singleton instance = new Singleton();

private Singleton() {

}

public static Singleton getInstance() {

return instance;

}

}

第二种:懒汉式(双检锁)

public class DCLSingleton {

private volatile static DCLSingleton singleton;

private DCLSingleton() {

}

public static DCLSingleton getSingleton() {

if (singleton == null) {

synchronized (DCLSingleton.class) {

if (singleton == null) {

singleton = new DCLSingleton();

}

}

}

return singleton;

}

}

第三种:枚举

public enum EnumSingleton {

INSTANCE;

public void whateverMethod() {

System.out.println(“EnumSingleton”);

}

}

第四种:静态外部类(登记式)

public class StaticClassSingleton {

private static class SingletonHolder {

private static final StaticClassSingleton INSTANCE = new StaticClassSingleton();

}

private StaticClassSingleton() {

}

public static final StaticClassSingleton getInstance() {

return SingletonHolder.INSTANCE;

}

}

上述四种实现体例都是线程宁静的,一般环境下,建议利用第 1 种饿汉体例。只需在要明白实现 lazy loading 结果时,才会利用第 4 种登记体例。如果触及到反序列化建立工具时,可以测验测验利用第 3 种枚举体例。如果有其他特别的需求,可以考虑利用第 2 种双检锁体例。

顶一下
(0)
0%
踩一下
(0)
0%
------分开线----------------------------
标签(Tag):Java Java开辟标准
------分开线----------------------------
颁发评论
请自发遵循互联网相关的政策法规,严禁公布色情、暴力、革命的谈吐。
评价:
神色:
考证码:点击我更换图片
猜你感兴趣