Item 89. Enum for Instance Control
public class SingletonClass {
private static final SingletonClass INSTANCE = new SingletonClass();
private SingletonClass() {
// ...
}
// ...
}readResolveλ₯Ό μ΄μ©ν ν΄κ²° λ°©λ²
readResolveλ₯Ό μ΄μ©ν ν΄κ²° λ°©λ²public class SingletonClass implements Serializable {
private static final SingletonClass INSTANCE = new SingletonClass();
private transient SomeField someField; // μ§λ ¬ν ννμμ μλ¬΄λ° μ€ λ°μ΄ν°λ₯Ό κ°μ§ νμκ° μμΌλ λͺ¨λ νλλ₯Ό transientλ‘ μ μΈ
private SingletonClass() {
// ...
}
public static SingletonClass getInstance() {
return INSTANCE;
}
// μμ§λ ¬νλ κ°μ²΄λ₯Ό λμ ν κ°μ²΄λ₯Ό λ°ννλ μν μ μννλ λ©μλ
private Object readResolve() {
// μ§μ§ μΈμ€ν΄μ€λ₯Ό λ°ννκ³ , μμ§λ ¬ν μ€ μκΈ΄ μΈμ€ν΄μ€λ GCμμ μ κ±°λλλ‘ ν¨
return INSTANCE;
}
}μ΄κ±° νμ
μ μ¬μ©ν ν΄κ²° λ°©λ²
Last updated