클래스에서 특정 상태 값을 저장하기 위해 어떤 패턴을 사용할 수 있나요?

싱글톤 패턴을 구현하려면 다음과 같은 단계를 따르면 됩니다:

  1. 클래스의 생성자를 private으로 선언하여 외부에서의 인스턴스 생성을 막습니다.
  2. 클래스 내부에 private static 변수를 선언하고, 해당 변수에 유일한 인스턴스를 저장합니다.
  3. 외부에서 인스턴스에 접근하기 위한 public static 메서드를 생성합니다. 이 메서드 내에서는 인스턴스가 생성되어 있지 않은 경우에만 새로운 인스턴스를 생성합니다.
public class Singleton {
    private static Singleton instance;
    private String state;

    private Singleton() {
        // Private Constructor
    }

    public static Singleton getInstance() {
        if (instance == null) {
            instance = new Singleton();
        }
        return instance;
    }

    public void setState(String state) {
        this.state = state;
    }

    public String getState() {
        return state;
    }
}

위와 같은 싱글톤 클래스를 사용하면 다음과 같이 인스턴스를 생성하고 상태 값을 저장할 수 있습니다:

Singleton singleton = Singleton.getInstance();
singleton.setState("Hello, World!");
System.out.println(singleton.getState());  // 출력: "Hello, World!"

싱글톤 패턴은 다른 클래스와의 결합도를 낮추고, 전역적으로 접근할 수 있는 공유 상태 값을 유지하기 위한 용도로 사용될 수 있습니다. 하지만 싱글톤 패턴을 남용하면 테스트와 확장성 측면에서 문제가 발생할 수 있으므로 적절한 상황에서 사용하는 것이 좋습니다.