单例模式确保某个类只有一个实例,而且自行实例化并向整个系统提供这个实例。
如何保证对象只有一个?
1.不能让别人new对象。(想到了private,对,就是它)
2.对外提供一个公共方法,供别人调用来完成创建对象这个操作
3.在本类中创建一个本类的实例.

下面介绍两种单例设计模式:

立即加载/饿汉式加载模式:

class Singleton1{
	//在静态方法区中只new一次,即保证只能new一个对象实例
	private static Singleton1 s= new Singleton1();
	
	private Singleton1(){
		
	}
	
	public static Singleton1 getInstance(){
		
		return s;
	}
}

延迟加载/懒汉式模式:

class Singleton2{

	private static Singleton2 s = null;
	
	private Singleton2(){
		
	}
	
	public static Singleton2 getInstance(){
		if(s == null)
		{
			s = new Singleton2();
		}
		return s;
	}
}