单例类并不是语法,只是一种写法。
有时候我们并不希望一个类可以被实例化多个对象,只希望全局只被实例化出对象。想要达成这个目的的思路是:
- 声明一个类型为其自身的私有的类成员
- 把构造方法私有化
- 提供一个公有化的方法访问该静态成员,如果为null调用构造方法进行实例化
示例代码:
public class Singleton {
private static Singleton mInstance; //类型为其自身的私有的类成员
//构造方法私有化,不允许到处实例化
private Singleton() {
}
// 提供一个公有化的方法访问该静态成员
public static Singleton getInstance() {
if (mInstance == null) {
mInstance = new Singleton();
}
return mInstance;
}
public void showSingleton() {
System.out.println("我是单例类Singleton");
}
}
public class Test {
public static void main(String[] args) {
Singleton.getInstance().showSingleton(); //获取唯一的实例对象
}
}
运行结果:
<pre>
我是单例类Singleton
</pre>
本文代码下载:百度网盘
网友评论