![thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc53bov%2Fbtro6bKhRrG%2Fhyqk4lh48s11ZqVg4W9XP0%2Fimg.jpg)
Effective Java 3. 생성자나 열거 타입으로 싱글턴임을 보증하라
2021. 12. 28. 01:00
Java/Effective Java
오늘은 싱글턴을 만드는 방법에 대해 알아보겠다. 싱글턴을 만드는 방법에는 아래와 같이 세 가지 방식이 있다. 싱글턴을 만드는 방법 1. public static final 필드 방식의 싱글턴 생성자는 private으로 감춰두고, 유일한 인스턴스에 접근할 수 있는 수단으로 public static final 멤버를 마련한다. public class Elvis1 { public static final Elvis1 INSTANCE = new Elvis1(); private Elvis1() { } } 이 방식의 장점은 아래와 같다. public static 필드라 final이니 해당 클래스가 싱글턴임이 API에 명백하게 드러난다. 간결하다. 싱글턴을 만드는 방법 2. 정적 팩터리 방식의 싱글턴 생성자는 priv..
![thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbwctV3%2FbtroXMXEfzB%2Fes8FQTz9h6vRKyLRBMvtJ0%2Fimg.jpg)
Effective Java 2. 생성자에 매개변수가 많다면 빌더를 고려하라
2021. 12. 25. 23:42
Java/Effective Java
객체 생성은 생성자를 통해 하거나 아이템 1에서 공부한 것처럼 정적 팩토리 메서드를 사용할 수 있다. 이제 매개변수가 많아질 때에 어떻게 객체 생성을 할 수 있을지 알아보자. 점층적 생성자 패턴(telescoping constructor pattern) 정적 팩터리와 생성자에는 똑같은 제약이 있다. 바로 선택적 매개변수가 많을 때 적절히 대응하기 어렵다는 점이다. 이럴 때, 프로그래머는 샘플 코드와 같이 점층적 생성자 패턴(telescoping constructor pattern)을 즐겨 쓴다. public class NutritionFacts { ... public NutritionFacts(int servingSize, int servings, int calories) { this(servingSiz..