单例模式-懒汉模式和饿汉模式

先看一张图,加强一下印象。在这里感谢百度图片。
上结论:
饿汉模式:在类加载时就创建对象,时间较快,比较占空间。可以采用静态内部类来解决这个问题。
懒汉模式::直到需要创建对象,采取创建对象,缺点时间就比较慢,优点就是利用时间换取空间
根据实际情况来选择合适的模式。我目前的水平比较喜欢饿汉模式。
在这里插入图片描述

在这里插入图片描述

懒汉模式-一种实现方式

public class LazySingleton {
    
    
	//将构造方法私有化,这样就创建不了对象了,那这个类还有啥作用呢。
	private LazySingleton() {
    
    
		
	}
	//先不创建好对象,不占用空间
	private static LazySingleton lazySingleton ;
	
	public static LazySingleton getInstance() {
    
    
		if (lazySingleton == null) {
    
     //如果没有创建对象,那么立刻就创建对象。
			lazySingleton = new LazySingleton();
		}
		return lazySingleton ;
	}
}
//main方法里面
LazySingleton lazySingleton = LazySingleton getInstance()

饿汉模式

public class HungrySingleton {
    
    
	//将构造方法私有化,这样就创建不了对象了,那这个类还有啥作用呢。
	private HungrySingleton() {
    
     }
	
	//类加载的时候就创建好一个对象,采用静态属性,可以采用静态方法
	private static HungrySingleton hungrySingleton = new HungrySingleton();
	
	public static HungrySingleton getInstance() {
    
    
		return hungrySingleton;
	}
}
	public static void main(String[] args) {
    
    
		
		HungrySingleton hungrySingleton01 = HungrySingleton.getInstance();
	}

在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/toomemetoo/article/details/112346180