Effective Java

인스턴스화를 막는 이유 1. 불필요한 인스턴스 생성 방지 어떤 클래스가 여러 번 인스턴스화되어도 동일한 객체를 반환해야 할 때가 있다. 이런 경우, 생성자를 직접 호출하지 못하게 하고 미리 생성된 인스턴스를 제공함으로써 불필요한 객체 생성을 방지해 메모리와 성능을 최적화할 수 있다. 2. 상태의 불변성 유지 비밀번호 해싱 라이브러리같이 해싱된 비밀번호를 변경하지 못하도록 하기 위해 인스턴스화를 막을 수 있다. 3. 싱글톤 패턴 싱글톤은 어떤 클래스의 인스턴스가 오직 하나만 존재해야 하는 경우 사용된다. 이 경우, 클래스의 생성자를 private로 만들어 외부에서 인스턴스를 생성하지 못하게 하고, 정적 메서드나 정적 변수를 사용하여 하나의 인스턴스를 관리한다. 4. 상속 제어 어떤 클래스를 다른 클래스에서..
싱글톤(Singleton) 패턴 소프트웨어 디자인 패턴에서 싱글톤 패턴(Singleton pattern)을 따르는 클래스는, 생성자가 여러 차례 호출되더라도 실제로 생성되는 객체는 하나이고 최초 생성 이후에 호출된 생성자는 최초의 생성자가 생성한 객체를 리턴한다. 이와 같은 디자인 유형을 싱글턴 패턴이라고 한다. 주로 공통된 객체를 여러개 생성해서 사용하는 DBCP(DataBase Connection Pool)와 같은 상황에서 많이 사용된다. 싱글톤 패턴은 간단히 객체의 인스턴스를 한 개만 생성되게 하는 패턴이다. public static final 필드 방식의 싱글톤 public class Elvis { public static final Elvis INSTANCE = new Elvis(); priva..
정적 팩토리와 생성자는 선택적 매개변수가 많을 때 적절히 대응하기 어렵다는 제약이 있다. 점층적 생성자 패턴 public class NutritionFacts { private final int servingSize;// 필수 private final int servings;// 필수 private final int calories;// 선택 private final int fat;// 선택 private final int sodium;// 선택 private final int carbohydrate;// 선택 public NutritionFacts(int servingSize, int servings) { this(servingSize, servings, 0); } public NutritionFact..
클래스의 인스턴스를 얻을 때 일반적으로 public 생성자를 사용한다. 하지만 개발자는 클래스에 생성자 대신(혹은 함께) 정적 팩토리 메소드를 제공해 클래스의 인스턴스를 반환할 수 있다. public class Person { private String name; private int age; // 생성자를 통한 인스턴스 생성 private Person(String name, int age) { this.name = name; this.age = age; } // 정적 팩토리 메소드: 이름과 나이를 받아 Person 객체 생성 public static Person createPerson(String name, int age) { return new Person(name, age); } // 정적 팩토리 ..
서채리
'Effective Java' 태그의 글 목록