728x90
반응형
객체 생성을 막을 때는 private 생성자를 사용하라
때로 정적 메서드나 필드만 모은 클래스를 만들고 싶을 때가 있다.
자바의 기본 자료형 값(primitive value) 또는 배열에 적용되는 메서드를 한군데 모아둘 때 유용하다. (java.lang.Math 나 java.lang.Array)
특정 인터페이스를 구현하는 객체를 만드는 팩터리 메서드 등의 정적 메서드를 모아놓을 때도 사용할 수 있다. (java.util.Collections)
이런 유틸리티 클래스(utility class)들은 객체를 만들 목적의 클래스가 아니기 때문에 private 생성자를 클래스에 넣어 객체 생성을 방지해야 한다.
(생성자를 생략하면 컴파일러는 자동으로 인자 없는 기본 생성자를 생성한다.)
728x90
반응형
'프로그래밍 노트 > Effective 시리즈' 카테고리의 다른 글
람다보다는 메서드 참조를 사용하라. (0) | 2019.12.26 |
---|---|
익명 클래스보다는 람다를 사용하라. (0) | 2019.12.26 |
규칙3. private 생성자나 enum 자료형은 싱글턴 패턴을 따르도록 설계하라 (0) | 2018.11.26 |
규칙1. 생성자 대신 정적 팩터리 메서드를 사용할 수 없는지 생각해 보라 (0) | 2018.11.26 |
규칙49. 객체화된 기본 자료형 대신 기본 자료형을 이용하라 (0) | 2018.11.14 |