设计模式之单例模式(Singleton)

设计模式之单例模式(Singleton)

设计模式是前辈的一些经验总结之后的精髓,学习设计模式可以针对不同的问题给出更加优雅的解答

单例模式可分为俩种:懒汉模式和饿汉模式。俩种模式分别有不同的优势和缺点


懒汉模式

class Singleton{
		private static  Singleton instance = new Singleton();

		private test(){
	
	}
		public static test getInstance(){
		return instance;
	}

}	
  1. 将构造函数私有化,不允许外界创建对象
  2. 创建类的唯一实例
  3. 提供一个用于获取实例的方法,使用Singlenton.getInstance();来创建

饿汉模式

class test{
		private static  test instance;
		private test(){
	}
	public static test getInstance(){
			if(instance != null){
			return new test();
		}
	return instance;
	}
}
  1. 同样将构造函数私有化
  2. 声明实例但不初始化
  3. 在方法内部判断有没有创建,没有就new出来,有了就直接使用

总结:

饿汉模式在类加载时候自动创建实例,类加载慢,运行时获取对象快(线程安全)

懒汉模式在类加载时候没有加载实例,在创建的时候才会生成实例,类加载快,运行时候获取对象慢(线程不安全)

原文地址:https://www.cnblogs.com/libowen/p/6224080.html