实现单例的一个方法
源文档 <http://baike.baidu.com/view/1859857.htm>
作为对象的创建模式, 单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。这个类称为单例类。
在java中,可以使用以下这种方式使用单例模式创建类的实例:
//虽然数量很少,但如果每次对象请求引用时都要检查是否存在类的实例,将仍然需要一些开销。可以通过使用静态初始化解决此问题。
package com.fs.test;
public class A { private static A a; //null private A() { //将构造器设为私有,将不能在类外调用new函数;保证该类只能有一个实例 } public static A getA() { if(A.a==null) { A.a = new A(); //自行创建这个事例; } return A.a; //向整个系统提供这个实例 }
public void m(){ System.out.println("aaa"); } } |
package com.fs.test;
public class Test { public static void main(String[] args) { A a = A.getA(); a.m();//aaa A a2 = A.getA(); a2.m();//aaa System.out.println(a==a2);//true;没有新对象生成。 } }
|
new函数在创建一个对象的时候,将调用其构造器;设为私有的构造器将保证不能在类外创建该类对象。 |