单例模式:保证一个类仅有一个实例,并提供一个访问它的全局访问点。
让类自身保存它的唯一实例。这个类可以保证没有其他实例可以被创建,并且它可以提供一个访问该实例的方法。
单例模式因为Singleton类封装它的唯一实例,这样它可以严格地控制客户怎样访问它以及何时访问它。即对唯一实例的受控访问。
饿汉式:在类加载时就将自己实例化。
懒汉式:第一次引用时才将自己实例化。
/**
* 饿汉式
*/
public class Singleton {
private static Singleton singleton = new Singleton();
private Singleton() {
}
public static Singleton getInstance(){
return singleton;
}
}
/**
* 懒汉式
*/
public class Singleton1 {
public static Singleton1 singleton1;
private Singleton1(){
}
public static synchronized Singleton1 getInstance(){
if (singleton1 == null){
singleton1 = new Singleton1();
}
return singleton1;
}
}