- 解决的问题: 就是可以保证一个类在内存中的对象唯一性.
- 使用情况: 当需要实现多个程序共用一个对象资源时, 保证该对象的唯一性.
- 实现思路:
1.不允许其他程序用new创建类对象;
2.在该类中创建一个本类实例;
3.对外提供一个方法, 让其他程序可以获取该对象; - 步骤:
1.首先自己需要通过new在本类中创建一个本类对象;
2.私有化该类构造函数; //private Single(){} 让new Single()无法被其他程序创建
3.定义一个公有并且静态的方法让其他程序通过类名调用来获取, 并将创建的对象的引用返回; //public static Single getInstance()
4.将自己创建的对象静态化; //静态方法只能访问静态内容
5.如果需要拿到对象的实例, 可以在main方法中另外创建对象引用指向该类对象的引用; //Single ss = Single. getInstance();
6.因为对象是成员变量, 为了保持可控性, 将对象私有化private; //防止Single ss = Single. s;
懒汉式(延迟加载): 初始化对象为null, 定义的方法中给出条件
if(s==null){
s = new Single();
}
因为对象为null, 此方式的对象不是随着类的加载而创建, 调用定义的方法时才加载, 节约内存空间.