본문 바로가기
프로그래밍 놀이터/디자인 패턴, 리펙토링

[Effective Java] private 생성자를 사용해서 인스턴스 생성을 못하게 하자.

by 돼지왕 왕돼지 2015. 4. 5.
반응형
private 생성자를 사용해서 인스턴스 생성을 못하게 하자.

-
static 메소드와 static 필드만을 모아 놓은 클래스를 만들 경우 private 생성자를 사용해서 인스턴스 생성을 못하게 하자.


-
명시적으로 지정한 생성자가 없을 때는 컴파일러가 디폴트 생성자 ( default constructor ) 를 생성한다.
이는 javadoc 프로그램으로 생성하는 API 문서에도 나타나므로 인스턴스 생성이 가능한 클래스로 오인될 수 있다.

public class UnilityClass{
    private UtilityClass(){
        throw new AssertError();
    }
    ...
}


-
이 방법은 sub class 를 가질 수 없다는 단점이 있지만, Utility 함수들은 대부분 상속을 위해 설계되지 않기 때문에 이 문제는 skip!!






반응형

댓글