private 생성자나 열거 타입으로 싱글턴임을 보증하라 싱글턴(singleton)이란 인스턴스를 오직 하나만 생성할 수 있는 클래스를 말한다. 싱글톤이란 개념 자체는 그리 어렵지 않다. 간단하게만 보려면 아래 글만 참고해도 된다. [Design Pattern] Singleton (싱글톤) Singleton 디자인 패턴 Singleton(싱글톤)이란 인스턴스가 단 1개만 생성되어야 하는 패턴이다. Java를 사용하여 싱글턴을 만드는 방법은 다음과 같다. Singleton public class SingletonTest { private int num; private S mimah.tistory.com 책 이펙티브 자바를 토대로 싱글톤을 만드는 세 가지 방법을 서술했다. 세 가지 방법 외에도 다양한 방법이..
빌더 패턴 특징과 장단점 빌더 패턴을 살펴보기 전, 객체를 생성 시 사용하는 두 가지 방식을 간단하게 살펴본다. 빌더 패턴은 점층적 생성자 패턴과 자바빈즈 패턴의 장점을 채택하여 만들어졌다고 볼 수 있다. 점층적 생성자 패턴 유물이다. 요즘엔 거의 자바빈즈 패턴(setter) 또는 빌더 패턴을 사용하므로 실무 코드에서는 보기 어렵다. 말 그대로 점층적으로 생성자를 늘린다는 의미이다. 보통 필드 값이 추가될 때마다 생성자를 하나씩 추가한다. public class NutritionFacts { private final int servingSize; private final int servings; private final int calories; private final int fat; private fi..
정적 팩토리 메서드 (Static factory method) 정적 팩토리 메서드란 간단히 말해 객체를 생성할 때, 생성자를 쓰지 않고 정적 메서드를 사용하는 것이다. 디자인 패턴의 팩토리 메서드와는 다른 것이며, 디자인 패턴 중에는 정적 팩토리 메서드와 일치하는 것은 존재하지 않는다. 이펙티브 자바에 나오는 정적 팩토리 메서드의 장단점을 쉽게 이해하기 위해 예제 코드를 함께 기술하였으며, 이것은 무조건적인 정답이 아니기 때문에 직접 예제 코드를 만들어보는 것도 좋은 방법이다. 개인적으로는 해당 기법을 처음 보는 사람이라면 장점 1, 2, 4번과 단점만을 이해하여도 충분히 잘 사용할 수 있을 것이라 생각한다. 생성자의 접근 제어자가 public인 경우, 생성자를 통해 객체 생성을 언제 어디서든 제한 없이..