-
可以保证系统中,应用该模式的这个类永远只有一个实例,即一个类永远只能创建一个对象
-
例如任务管理器对象我们只需要一个就可以解决问题了,这样可以节省内存空间。
-
饿汉单例模式。
-
懒汉单例模式。
-
…
在用类获取对象的时候,对象已经提前为你创建好了。
设计步骤:
定义一个类,把构造器私有。
定义一个静态变量存储一个对象。
-
package demo.single; public class SingleInstance1 { // public static int onLineNumber = 21; public static SingleInstance1 instance = new SingleInstance1(); private SingleInstance1(){ } }package demo.single; public class Test { public static void main(String[] args) { SingleInstance1 s1 = SingleInstance1.instance; SingleInstance1 s2 = SingleInstance1.instance; SingleInstance1 s3 = SingleInstance1.instance; System.out.println(s1); System.out.println(s2); System.out.println(s3); System.out.println(s1 == s2); } }懒汉单例设计模式 -
在真正需要该对象的时候,才去创建一个对象(延迟加载对象)。
设计步骤:
定义一个类,把构造器私有。
定义一个静态变量存储一个对象。
提供一个返回单例对象的方法
package demo.single;
public class SingleInstance2 {
private static SingleInstance2 instance;
private SingleInstance2(){
}
public static SingleInstance2 getInstance(){
if(instance == null){
// 第一次来拿对象,为他做一个对象
instance = new SingleInstance2();
}
return instance;
}
}
package demo.single;
public class Test2 {
public static void main(String[] args) {
// 得到一个对象
SingleInstance2 s1 = SingleInstance2.getInstance();
SingleInstance2 s2 = SingleInstance2.getInstance();
System.out.println(s1 == s2);
}
}



