[Item4] 인스턴스화를 막으려거든 private 생성자를 사용하라

Sera Lee·2022년 2월 21일
0

EffactiveJava

목록 보기
3/9
post-thumbnail

Utility성 클래스는 private 생성자를 사용하자

잘못된 예제

public class PatternUtil {

	private static final String PATTERN = 
		"\\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[A-Z]{2,}\\b";

	public static boolean isEmailValid(String email) {
		return email.matches(PATTERN);
	}

	public String getPattern() {
		return PATTERN;
	}
}

isEmailValid() 를 만든 개발자가 퇴사를 하고 후에, 다른 개발자가 getPattern() 을 만들어 인스턴스화를 해버리려는 상황이 발생할 수 있다. private PatternUtil(){} 로 private 생성자를 만들어 이런 상황을 방지해야한다.

인스턴스화가 필요없는 클래스는 생성자를 막도록 하자

생성자를 막지 못하는 경우(Spring Bean)으로 사용하는 경우는 주석이라도 달자.

❗️결론

Util성 클래스는 private 생성자를 사용하여 나 이외의 개발자에게 알려주자.
협업의 시작은 이 사소한 행동부터 시작된다.

0개의 댓글