티스토리 뷰
![]() |
|
java.lang.Math, java.util.Arrays, java.util.Collections 같은 유틸리티 클래스(utility class)들은 객체를 만들 목적의 클래스가 아니다.
private 생성자를 이용한 객체 생성 방지
public class UtilityClass {
// 기본 생성자가 자동 생성되지 못하도록 하여 객체 생성
private UtilityClass() {
throw new AssertionError();
}
}
- AssertionError는 반드시 필요한 것은 아니지만, 클래스 안에서 실수로 생성자를 호출하면 바로 알 수 있게 하기 위한 것.
- 생성자를 명시적으로 정의했으나 직관적이진 않으니 위 처럼 주석을 달아 두는 것이 바람직하다.
- 호출 가능한 생성자가 없기 때문에 하위 클래스도 만들 수 없다.
'프로그래밍 > Java' 카테고리의 다른 글
| [이펙티브 자바] 규칙13. 클래스와 멤버의 접근 권한은 최소화하라 (0) | 2017.11.21 |
|---|---|
| [이펙티브 자바] 규칙5. 불필요한 객체는 만들지 말라 (0) | 2017.11.21 |
| [이펙티브 자바] 규칙3. private 생성자나 enum 자료형은 싱글턴 패턴을 따르도록 설계하라 (0) | 2017.11.21 |
| [이펙티브 자바] 규칙2. 생성자 인자가 많을 때는 Builder 패턴 적용을 고려하라. (0) | 2017.11.21 |
| [이펙티브 자바] 규칙1. 생성자 대신 정적 팩터리 메서드를 사용할 수 없는지 생각해 보라 (0) | 2017.11.21 |
댓글
Copyright ⓒ 2018 moneystory.blog. All rights reserved.

