单例模式的定义?单例模式的应用环境?怎么写单例模式?

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));
	}

}

测试结果

欢迎各位的批评和指导

全部评论

相关推荐

ResourceUtilization:四六级不愧是大学最有用的证之一
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
04-30 11:43
春招失败、父母离婚,好像我的人生一团糟,一年来压力大到常常崩溃。不知道能跟谁聊,朋友其实对我非常好,但是她无意中表达出来的家庭幸福都会刺痛到我……和ai聊天,我的未来在更高处,不在楼下,忍不住爆哭😭
youngfa:害,妹妹,我是一个研究生(很上进很想找到好工作的那种),但去年因为生病回家休养错过了秋招(当时对我的冲击也是非常大的),这学期返校来了也是把论文盲审交了后才开始找工作,现在也是一个offer没有,但我就没有像你一样把这个阶段性的事情绑定到人生上,人生不仅很长,也很广阔,先停下来,放松一下哦。不要被外部环境灌输的思维操控了,好好爱自己!
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务