单例模式是设计模式中最简单的形式之一。对于某些系统来说,保证类只有一个实例很重要,避免创建重复的对象。通过单例模式可以保证系统中一个类只有一个实例,即一个类只有一个对象实例。
解决问题:可以保证一个类在内存中的对象唯一性。
必须对于多个程序使用同一个配置信息对象时,就需要保证该对象的唯一性。
如何保证对象唯一性:
1.不允许其它程序用new创建该对象
2.在该类创建一个本类实例。
3.对外提供一个方法让其他程序可以获取该类对象。
步骤:
1.私有化该类构造函数。
2.通过new在本类中创建一个本类对象。
3.定义一个公有的方法,将创建的对象返回。
//饿汉式 public class SingleDemo { //创建本类实例 private static SingleDemo singleDemo = new SingleDemo(); //私有化构造方法,防止对象创建 private SingleDemo() { } //定义公有方法,返回创建的对象
public static SingleDemo getInstance() {
return singleDemo;
}
public static void main(String[] args) {
SingleDemo ss = SingleDemo.getInstance();
SingleDemo ss2 = SingleDemo.getInstance();
System.out.println(ss == ss2);
}
}
//懒汉式:类加载加载进来,没有对象,只有调用了getInstance方法时,才会创建对象
class Single{
private static Single s = null;
private Single(){}
public static Single getInstance(){
if(s == null){
s = new Single();
}
return s;
}
}