Java 单例模式(singleton)类设计
单例模式,顾名思义就是只有一个实例的意思。确保一个类只有一个实例,实现方式主要是构造方法私有化,实例设为静态变量。
/**
* 懒汉式 直到第一次请求实例才创建实例
* 优点 需要实例时才创建
* 缺点 线程不安全(可通过synchronized同步)
*/
class Singleton(){
private static Singleton instance;
private Singleton(){}; //构造方法私有化
public static synchronized Singleton getInstance(){ //通过getInstance()获取实例 synchronized保证线程安全
if(instance==null){ //判断实例是否已经创建
instance = new Singleton();
}
return instance;
}
}
/**
* 恶汉式 类加载时就创建实例
* 优点 实现简单
* 缺点 如果一直不需要,会造成资源浪费
*/
class Singleton(){
private static Singleton instance = new Singleton(); //类加载时,创建实例
private Singleton(){};
public static Singleton getInstance(){
return instance;
}
}