본문 바로가기

private 생성자2

Effective Java 아이템 4. 인스턴스화를 막으려거든 private 생성자를 사용하라 Effective Java 3판을 학습하며 요약한 내용입니다. 자세한 내용은 책을 참고해주시기 바랍니다. 단순히 정적 메서드와 정적 필드만을 담은 클래스를 만들어야 하는 경우가 있다. 이 방식은 객체 지향적으로 좋은 않은 클래스라고 여길 수 있지만, 이러한 클래스도 나름의 쓰임새가 있다. 예를 들어 java.lang.Math와 java.util.Arrays 클래스처럼 기본 타입 값이나 배열 관련 메서드를 모아 놓을 수 있다. 또한, java.util.Collections처럼 특정 인터페이스를 구현하는 객체를 생성해주는 정적 메서드를 가지고 있는 클래스가 있을 수 있다. 다음 코드는 Math 클래스의 일부분이다. public final class Math { private Math() {} public s.. 2019. 4. 4.
Effective Java 아이템 3. private 생성자나 열거 타입으로 싱글턴임을 보증하라 Effective Java 3판을 학습하며 요약한 내용입니다. 자세한 내용은 책을 참고해주시기 바랍니다. 싱글턴(singleton)이란 인스턴스를 오직 하나만 생성할 수 있는 클래스를 말한다. 싱글턴은 함수와 같은 무상태(stateless) 객체나 설계상 유일해야 하는 시스템 컴포넌트에서 사용할 수 있다. 클래스를 싱글턴으로 만들면 이를 사용하는 클라이언트를 테스트하기가 어려울 수 있다. 인터페이스를 정의하고 구현하는 경우가 아니라면 mock 구현으로 교체하기가 어렵기 때문이다. 싱글턴을 만들 때 생성자는 private으로 감춰두고, 유일한 인스턴스에 접근할 수 있는 수단으로 public static 멤버를 제공한다. public static final 필드 방식 private 생성자는 public st.. 2019. 4. 4.