static 메서드로 객체 생성을 캡슐화한다.”

개요

객체 생성을 캡슐화하는 기법이다.

좀 더 구체적으로는 객체를 생성하는 메소드를 만들고, static으로 선언하는 기법이다.

자바로 코딩할 때 흔하게 볼 수 있는 valueOf 메서드가 정적 팩토리 메서드의 한 예라 할 수 있다.

BigInteger answer = BigInteger.valueOf(42L); // BigInteger 42를 리턴한다

static으로 선언된 메서드이며, new BigInteger(...)를 은닉하고 있다는 사실을 알 수 있다.

실제로 BigInteger를 까보면 return new BigInteger(...)인 것을 볼 수 있다.

valueOf 외에, 정적 팩토리 메서드의 이름으로 흔히 사용되는 것들은 다음과 같다.

장점