Java
[Effective Java] 2-4. 객체 생성과 파괴: 인스턴스화를 막으려거든 private 생성자를 사용하라
noahkim_
2024. 12. 27. 03:12
조슈아 블로크 님의 "Effective Java" 책을 정리한 포스팅 입니다.
1. private 생성자
- 인스턴스를 생성하지 못하게 막기위한 효과적인 방법
- 컴파일러가 자동으로 생성자를 생성하지 않게 만듬
- 외부에서 생성자 호출이 불가
2. 유틸리티 클래스
- 주로 메서드만 모아놓은 클래스
- 클래스 자체에서 직접 메서드를 호출해서 사용하려 설계됨 (인스턴스 생성 X)
예시
더보기
Math
public final class Math {
private Math() {}
// ...
@IntrinsicCandidate
public static double sin(double a) {
return StrictMath.sin(a); // default impl. delegates to StrictMath
}
@IntrinsicCandidate
public static double cos(double a) {
return StrictMath.cos(a); // default impl. delegates to StrictMath
}
// ...
}
Collections
public class Collections {
private Collections() { }
@SuppressWarnings("unchecked")
public static <T extends Comparable<? super T>> void sort(List<T> list) {
list.sort(null);
}
@SuppressWarnings({"unchecked", "rawtypes"})
public static <T> void sort(List<T> list, Comparator<? super T> c) {
list.sort(c);
}
}