ConstructorとStatic Factory Method

988 ワード

小さな実験をしました
Effective Javaに書いてあるように、Constructorの代わりにStatic Factory Methodを使用します.
	public static void main(String[] args) {
		long l1 = System.currentTimeMillis();
		Sirotyann siro = new Sirotyann();
		long l2 = System.currentTimeMillis();
		
		long l3 = System.currentTimeMillis();
		Sirotyann siro2 = Sirotyann.getSirotyann();
		long l4 = System.currentTimeMillis();
		
		logger.debug("constructor : "+ (l2-l1));
		logger.debug("static factory : "+ (l4-l3));
	}

Sirotyannクラス:
class Sirotyann{
	
	public static Sirotyann getSirotyann(){
		return new Sirotyann();
	}
	
	public Sirotyann(){

	}	
}

最初の運転時:
constructor : 25
static factory : 0
1回実行後:
constructor : 2
static factory : 0
インスタンスの作成にかかる時間の差はさらに大きいはずですが、static factory methodはConstructorよりも速いことがわかります.