java设计模式—单例模式
java单例模式指的是,在执行程序的过程中,只允许该类生成一个实例对象。
通过单例模式可以保证系统中的一个类只有一个实例,而且这个类易于被外界访问,从而方便对实例个数的控制并节约系统资源。
单例模式定义
单例模式确保在某一个类只有一个实例,而且自行的实例化并向系统提供这个实例,这个类称为单例类,它提供全局的访问的方法。
单例模式的要点
1.某一类只能有一个实例
2.该单例类必须自行创建这个实例
3.该但李磊必须向整个系统提供这个实例。
单例模式的应用环境
单例模式一般应用在窗口管理器或者文件系统

package Singleton;

import java.io.Serializable;

public class Elvis implements Serializable {
	
	public static final Elvis INSTANCE = new Elvis();
	
	private Elvis() {}
	
	
	//Singleton的这个实现是:静态方法Elvis.getInstance的这个方法的所有调用都会返回同一个对象的引用
	//所以永远都不会创建第二个Elvis的实例
	public static  Elvis  getInstance() {
		return INSTANCE;
	}    
	
	
	
	//Obeject readRseolve方法
	private Object readResolve() 
	{
		return INSTANCE;
	}
	//为了使工厂方法实现单例模式(singetlon类)时是可序列化的,仅在声明中加上“implements Serializable”是不够的,为了
	//保证singetlon,必须声明所有的实例域都是瞬时的,并加上一个Object readResolve方法,否则每次反序列化一个序列化的
	//实例时都会创建一个新的实例,比如说在我们的例子中就会创建一个“假冒的Elvis”。
	//这样才是真正的单例。

	
	
	
	public void leavTheBuolder() 
	{
		
	}

}

这里提供了测试类来测试单例是否实现

//用私有构造器强化singetlon属性(私有构造器强化单例属性)——单例设计模式


//singetlon是指只能被实例化一次的类,singetlon 通常用来表示那些本质上唯一的系统组件,如窗口管理器或者文件系统。
//可以用java设计模式中的单例模式来对singetlon类进行快速的实现。

package Singleton;

public class Test {

	public static void main(String[] args) {
		// TODO 自动生成的方法存根

		Elvis elvis = Elvis.getInstance();
		Elvis elvis2 = Elvis.getInstance();
		System.out.println("elvis和elvis2是否相等?\n相等输出true,不相等输出false\n"+(elvis==elvis2));
	}

}

测试结果

欢迎各位的批评和指导