1. 程式人生 > >私有化建構函式的作用

私有化建構函式的作用

例如

public class DiskUtil {
  private DiskUtil() {  }

  public static FUNC(){}

}

這樣的類,往往提供一些靜態的函式來生成該類的例項,只要這個類有公開的屬性、方法,得到例項引用的一方還是可以呼叫的,一個例子是singleton。

外面呼叫只能呼叫DiskUtil 的靜態函式Func,而不能A a = new A();私有建構函式只能在函式內部呼叫,外部不能例項化,所以私有建構函式可以防止該類在外部被例項化

常見的應用是工具類和單例模式

package test.reflect;
public class Singleton {
	private static Singleton s= null;
	
	private Singleton() {
		
	}
	
	public static Singleton getInstance() {
		if (s == null) {
			synchronized (Singleton.class) {
				if (s == null) {
					s = new Singleton();
				}
			}
		}
		return s;
	}
}