반응형
private 생성자를 사용해서 인스턴스 생성을 못하게 하자.
-
static 메소드와 static 필드만을 모아 놓은 클래스를 만들 경우 private 생성자를 사용해서 인스턴스 생성을 못하게 하자.
-
명시적으로 지정한 생성자가 없을 때는 컴파일러가 디폴트 생성자 ( default constructor ) 를 생성한다.
이는 javadoc 프로그램으로 생성하는 API 문서에도 나타나므로 인스턴스 생성이 가능한 클래스로 오인될 수 있다.
public class UnilityClass{
private UtilityClass(){
throw new AssertError();
}
...
}
-
이 방법은 sub class 를 가질 수 없다는 단점이 있지만, Utility 함수들은 대부분 상속을 위해 설계되지 않기 때문에 이 문제는 skip!!
-
static 메소드와 static 필드만을 모아 놓은 클래스를 만들 경우 private 생성자를 사용해서 인스턴스 생성을 못하게 하자.
-
명시적으로 지정한 생성자가 없을 때는 컴파일러가 디폴트 생성자 ( default constructor ) 를 생성한다.
이는 javadoc 프로그램으로 생성하는 API 문서에도 나타나므로 인스턴스 생성이 가능한 클래스로 오인될 수 있다.
public class UnilityClass{
private UtilityClass(){
throw new AssertError();
}
...
}
-
이 방법은 sub class 를 가질 수 없다는 단점이 있지만, Utility 함수들은 대부분 상속을 위해 설계되지 않기 때문에 이 문제는 skip!!
반응형
'프로그래밍 놀이터 > 디자인 패턴, 리펙토링' 카테고리의 다른 글
[Effective Java] 파이날라이저 ( finalizer ) 의 사용을 피하자. (0) | 2015.12.15 |
---|---|
[Effective Java] 불필요한 객체의 생성을 피하자. (0) | 2015.04.30 |
[Effective Java] private 생성자나 enum 타입을 사용해서 싱글톤의 특성을 유지하자. (0) | 2015.02.25 |
[Effective Java] 생성자의 매개변수가 많을 때는 빌더(builder)를 고려하자. (0) | 2015.02.08 |
[Effective Java] 생성자 대신 static 팩토리(factory) 메소드 사용을 고려하자. (0) | 2014.09.08 |
댓글