单例设计模式:
是指只能拥有一个实例的类就是单例类。
私有构造方法
获取方式
通过公共的静态方法创建单一的实例。
通过静态工厂方法获取实例。
两种模式
懒汉模式 – 通常被称为延迟加载。
class Singleton{
private static Singleton instance = null;
private Singleton(){}
static Singleton getInstance(){
if(instance == null){
instance = new Singleton();
}
return instance;
}
}
饿汉模式
class Singleton{
private static Singleton instance = new Singleton();
pirvate Singleton(){}
static Singleton getInstance(){
return instance;
}
}
比较:
饿汉式是线程安全的,在类创建的同时就已经创建好一个静态的对象供系统使用,以后不在改变
懒汉式如果在创建实例对象时不加上synchronized则会导致对对象的访问不是线程安全的
推荐使用第一种
枚举只有一个成员时,就可以作为一种单例的实现方式。
是指只能拥有一个实例的类就是单例类。
私有构造方法
获取方式
通过公共的静态方法创建单一的实例。
通过静态工厂方法获取实例。
两种模式
懒汉模式 – 通常被称为延迟加载。
class Singleton{
private static Singleton instance = null;
private Singleton(){}
static Singleton getInstance(){
if(instance == null){
instance = new Singleton();
}
return instance;
}
}
饿汉模式
class Singleton{
private static Singleton instance = new Singleton();
pirvate Singleton(){}
static Singleton getInstance(){
return instance;
}
}
比较:
饿汉式是线程安全的,在类创建的同时就已经创建好一个静态的对象供系统使用,以后不在改变
懒汉式如果在创建实例对象时不加上synchronized则会导致对对象的访问不是线程安全的
推荐使用第一种
枚举只有一个成员时,就可以作为一种单例的实现方式。