[TOC]
设计模式
一、单例实现
-
懒汉式
/** * 饿汉式,线程安全,调用效率高 ,但是不能延迟加载 */ public class Singleton1 { private static final Singleton1 singleton = new Singleton1(); private Singleton1 () { } public static Singleton1 getInstance() { return singleton; } }
-
饿汉式
/** * 懒汉式,线程安全,效率不高,可延迟加载 */ public class Singleton { private static Singleton singleton; private Singleton() { } public static synchronized Singleton getInstance() { if (null == singleton) { singleton = new Singleton(); } return singleton; } }
-
枚举实现
/** * 枚举实现单列,线程安全,效率高,但是不能延迟加载 */ public class SingletonUseEnum { private enum SingletonEnum { INSTANCE; private final SingletonUseEnum singleton; SingletonEnum() { singleton = new SingletonUseEnum(); } private SingletonUseEnum getInstance() { return singleton; } } private SingletonUseEnum() { } public static SingletonUseEnum getInstance() { return SingletonEnum.INSTANCE.getInstance(); } }
- 内部类的实现方式
/**
* 功能描述 <p> 静态内部类实现方式,线程安全,资源利用率高,可以延时加载
*/
public class Singleton3 {
/**
* 静态内部类
*/
private static class SingletonInnerClass {
public static final Singleton3 instance = new Singleton3();
}
private Singleton3 () {
}
public static Singleton3 getInstance() {
return SingletonInnerClass.instance;
}
}