Java的单例模式
单例设计模式就是采用一定的方法保证:
- 在整个软件系统中,对于某个类只能存在一个对象实例,
- 并且该类只提供一个取得其对象实例的方法。
我们可以通过以下方法来做到这一点:
- 必须将类的构造方法的访问权限设置为private,这样就保证了不能够用new操作在类的外部产生对象。
- 在类的内部创建一个对象,同时提供一个静态方法返回内部创建的这个对象。
- 由于静态方法只能访问类中的静态成员变量,所以,类对象的变量也要定义为静态的。
package com.myexample.singleton;
/*
* 单例模式
* 该类只能够创建一个实例
*/
public class testSingleton {
public static void main(String[] args) {
Singleton s1 = Singleton.getInstance();
Singleton s2 = Singleton.getInstance();
//如何来判断S1和S2就是同一个实例呢,可以判断两者的引用是否一致
System.out.println(s1 == s2);//打印true说明引用相同
}
}
class Singleton{
//1、私有化构造器,使得在类的外部不能够用new创建对象。能够用new就能够创建多个实例。
private Singleton(){
}
//2、在类的内部创建一个实例.私有化对象,提供公共的调用方法
private static final Singleton instance = new Singleton();
//3、此公共方法只能够通过类来调用,从而设置为static。静态方法只能够调用静态变量
public static Singleton getInstance() {
return instance;
}
}
浙公网安备 33010602011771号