이펙티브 자바9 [아이템 3] private 생성자나 열거 타입으로 싱글턴임을 보증하라 싱글톤(singleton)이란 인스턴스를 하나만 생성할 수 있는 클래스를 말한다. 책에서 소개하는 싱글톤 구현 방법을 간단히 보겠다. 1. public static final 필드 방식의 싱글턴 class Elvis_Field { public static final Elvis_Field INSTANCE = new Elvis_Field(); private Elvis_Field() { } } 2. 정적 팩터리 방식의 싱글턴 class Elvis_Method { private static final Elvis_Method INSTANCE = new Elvis_Method(); private Elvis_Method() { } public static Elvis_Method getInstance() { retur.. 2021. 9. 30. [아이템 2] 생성자에 매개변수가 많다면 빌더를 고려하라 책에서는 선택적 매개변수가 많은 클래스의 인스턴스를 생성하는데 점층적 생성자 패턴(telescoping constructor pattern)과 자바빈즈 패턴(JavaBeans pattern) 그리고 아이템 2의 주제인 빌더 패턴(Builder pattern)을 소개하고 있어 간단히 설명해 보겠다. 1. 점층적 생성자 패턴(telescoping constructor pattern) class NutritionFacts1 { // 필수 private final int servingSize; private final int servings; // 선택 private final int calories; private final int fat; private final int sodium; private fina.. 2021. 9. 28. [아이템 1] 생성자 대신 정적 팩터리 메서드를 고려하라 자바에서 인스턴스를 생성하는 대표적인 방법은 new 키워드를 사용해 생성자를 호출하는 것이다. 기본적으로 파라미터가 없는 디폴트 생성자를 제공하며, 상황에 따라 파라미터를 추가해 다양한 생성자를 만들 수 있다. 이펙티브 자바 1장에서는 정적 팩토리 메서드를 소개한다. 처음 정적 팩토리 메서드란 표현이 낯설었는데 개념은 간단하다. 인스턴스를 반환하는 static method이다. 책에서 소개하는 정적 팩토리 메서드의 장점 1. 이름을 가질 수 있다. 생성자의 이름은 클래스명과 동일하게 만들어야 한다. 하지만 method는 다양하게 작명이 가능하고, 오버로딩을 통해 같은 이름의 메서드도 여러 개 만들 수 있다. 2. 호출될 때마다 인스턴스를 새로 생성하지 않아도 된다. 예로 Boolean.valueOf() .. 2021. 9. 11. 이전 1 2 다음 728x90