이펙티브 자바3 인스턴스화를 막으려거든 private 생성자를 사용하라 해당 내용의 핵심은 인스턴스를 생성할 필요가 없는 클래스를 설계할 때, 개발자가 실수로 인스턴스를 생성하는 것을 방지합니다. 예를 들어, 유틸리티성 클래스를 만들 때 이 클래스는 정적 필드만 포함하고 인스턴스화할 필요가 없습니다. "Java Math " 클래스가 이러한 유형입니다. 자바에서는 생성자를 명시적으로 정의하지 않으면 컴파일러가 자동으로 기본 생성자를 제공합니다. 이로 인해 개발자가 실수로 이러한 유틸 클래스의 인스턴스를 생성할 수 있습니다. 이를 방지 하기 위해 private 생성자를 사용합니다. private 생성자는 외부에서의 접근을 차단하여 클래스의 인스턴스화를 방지 합니다. 또한 이 생성자 내부에는 인스턴스화를 시도할 경우 예외를 던지는 코드를 작성할 수도 있습니다. public fin.. 2024. 1. 3. private 생성자나 열거타입으로 싱글턴임을 보증하라 Effective 자바에서 해당 아이템은 싱글턴 디자인 패턴을 구현하는 방법에 관한 것 입니다. 아래에서 싱글턴 패턴을 구현하는 방법을 알아보겠습니다. public static final 필드 방식의 싱글턴 이 방법은 싱글턴 인스턴스를 public static final 필드로 직접 제공합니다. 하지만 이 방법은 대체로 사용하지 않는게 좋습니다. 장점 클래스가 싱글턴임이 API에 명백히 드러남 public static final 필드이니 절대로 다른 객체를 참조할 수 없음 구현이 간함(간결함) 단점 유연성이 떨어짐 싱글턴 인스턴스가 인터페이스를 구현해야 하거나, 인스턴스를 런타임으로 바꿔야 하는 경우에 적합하지 않음 public class Singleton { public static final Sing.. 2024. 1. 3. 생성자에 매개변수가 많다면 빌더를 고려하라 정적 팩터리와 생성자에는 똑같은 제약이 하나 있습니다. 선택적 매개변수가 많을 때 적절히 대응하기가 어렵다는 점입니다. 빌더패턴을 설명하기 이전에 점층적 생성자 패턴(telescoping constructor pattern)에 대해 알아 보겠습니다. 점층적 생성자 패턴은 객체 생성 시 다양한 매개변수 조합을 처리하기 위해 여러 생성자를 제공하는 방식입니다. 이 패턴은 매개변수가 적을 때는 잘 작동하지만, 매개변수의 수가 많아지면 코드의 가독성과 관리가 어려워질 수 있습니다. 이펙티브 자바에서 예시로 이는 점층적 생성자 패턴 예시를 알아볼께요 점층적 생성자 패턴 - 확장하기 어렵다. ( Telescoping Constructor Pattern ) public class NutritionFacts { pri.. 2023. 12. 21. 이전 1 다음