前言:
当前你们对“java中的单例”大致比较珍视,看官们都需要知道一些“java中的单例”的相关内容。那么小编同时在网摘上收集了一些关于“java中的单例””的相关文章,希望看官们能喜欢,看官们快快来学习一下吧!视频加载中...
1.1. 单例设计模式的实现
1.1.1. 单例代码实现
需求:使用Java代码描述太阳,要求最多只能创建一个对象;
/**
* Sun
* 表示太阳的类
* @author 快学大数据
* 2018年6月15日 下午3:10:33
*/
public class Sun {
/*
* 思考:这个类,要求最多只能创建一个对象;
* 分析对象创建过程,发现,创建一个对象,需要使用new关键字和构造函数,
* 所以应该从new关键字和构造函数这两者上想办法;
* new关键字,是Java内置的一个关键字,程序员不能控制,所以只能控制构造函数,
* 不让其他地方随意使用;
* 使用private关键字修饰构造函数,这个类之外的地方就自然不能使用;
*/
private Sun() {}
/*
* 思考:单例不是没有对象,而是最多创建一个对象,就是还需要创建一个对象出来;
* 因为构造函数私有了,外界都不能使用,所以这个对象应该在这个类里面创建;
* 创建好的对象,需要使用一个成员变量保存;
* 保存这个唯一对象的成员变量,需要是静态的,而且为了安全,应该私有化。
*/
private static Sun ss = new Sun();
/*
* 因为保存 这个对象的变量被封装了,外界不能访问到,
* 所以应该提供一个公开的get方法,供外界使用;
* 又因为外界在调用这个方法获取sun对象之前,没有Sun的对象,
* 所以不能通过对象调用这个方法,所以这个方法应该用static修饰
*/
public static Sun getSun() {
return ss;
}
}
1.1.2. 单例实现步骤
要实现一个单例类,需要经过三个步骤:
1、私有化构造函数,目的是避免其它类可以创建这个类的对象;
2、在本类中创建唯一实例对象(因为构造函数私有化了,所以单例类的唯一实例对象只能在单例类里面创建;),使用一个私有静态的成员变量保存
3、对外提供一个公开的静态的函数供别人获取这个唯一实例对象
标签: #java中的单例