JAVA化境(一)设计模式之单例

版权声明:程序猴jwang版权所有 https://blog.csdn.net/qq_21046965/article/details/83243594

前言

      熬过了前面的那些磕磕绊绊,我们正式进入到java的精髓,设计模式的讲解,本章来尝鲜单例设计模式

范例

1.单例设计模式的作用

保证一个类只有一个实例,并且提供一个访问该实例的全局访问点

  • 由于单例模式只生成一个实例,减少了系统性能开销,当一个对象的产生需要比较多的资源时,如读取配置、产生其他依赖对象时,则可以通过在应用启动时直接产生一个单例对象,然后永久驻留内存的方式来解决
  • 单例模式可以在系统设置全局的访问点,优化共享资源访问。例如:可以设计单例类来负责所有数据表的映射处理

2.常见的单例模式设计方法 

  • 饿汉式(线程安全、调用效率高,但不能延时加载)
package com.jwang.test;

public class RegexTest {

	public static void main(String[] args) {
		System.out.println(Singleton.getInstance()==Singleton.getInstance());
	}
}

//饿汉式实现单例
class Singleton{
	private static Singleton singleton = new Singleton();//类初始化立刻加载类对象
	
	private Singleton(){}//构造器私有化
	
	//供外部获取该类实例
	public static Singleton getInstance(){
		return singleton;
	}
}
  • 懒汉式(线程安全、调用效率不高,但是可以延时加载) 
package com.jwang.test;

public class RegexTest {

	public static void main(String[] args) {
		System.out.println(Singleton.getInstance()==Singleton.getInstance());
	}
}

//懒汉式实现单例
class Singleton{
	private static Singleton singleton;
	
	private Singleton(){}//构造器私有化
	
	//供外部获取该类实例
	public static synchronized Singleton getInstance(){
		if(singleton == null){
			singleton = new Singleton();
		}
		return singleton;
	}
}

猜你喜欢

转载自blog.csdn.net/qq_21046965/article/details/83243594