首页 > 代码库 > 单例设计模式

单例设计模式

单例设计模式


单例设计模式指:保证一个类仅有一个实例,并提供一个访问它的全局访问点。


1.构造方法私有化

2.声明一个本类对象

3.给外部提供一个静态方法获取对象实例


两种实现方式:

1.饿汉式

2.懒汉式


/**
 * 
 * 单例设计模式
 *
 */
public class SingletonDemo {
	public static void main(String[] args){
		Singleton1 s=Singleton1.getInstance();
		s.show();
		Singleton1 s1=Singleton1.getInstance();
		System.out.println(s==s1);
		
		Singleton2 s2=Singleton2.getInstance();
		s2.show();
		Singleton2 s3=Singleton2.getInstance();
		System.out.println(s2==s3);
	}

}
//饿汉式
public class Singleton1 {
	//定义一个本类对象并实例化
	private static Singleton1 s=new Singleton1();
	//构造方法私有化
	private Singleton1(){};
	
	public static Singleton1 getInstance(){
		return s;
	}
	public void show(){
		System.out.println("饿汉式单例模式");
	}
}
//懒汉式(多线程访问时会有安全问题)
public class Singleton2 {
        //定义一个本类对象
	private static Singleton2 s=null;
	//构造方法私有化
	private Singleton2(){};
	
	public static Singleton2 getInstance(){
		if(s==null){
			s=new Singleton2();
		}
		return s;
	}
	public void show(){
		System.out.println("懒汉式单例模式");
	}
}


单例设计模式