클래스에서 특정 상태 값을 저장하기 위해 어떤 패턴을 사용할 수 있나요?
싱글톤 패턴을 구현하려면 다음과 같은 단계를 따르면 됩니다:
- 클래스의 생성자를 private으로 선언하여 외부에서의 인스턴스 생성을 막습니다.
- 클래스 내부에 private static 변수를 선언하고, 해당 변수에 유일한 인스턴스를 저장합니다.
- 외부에서 인스턴스에 접근하기 위한 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!"
싱글톤 패턴은 다른 클래스와의 결합도를 낮추고, 전역적으로 접근할 수 있는 공유 상태 값을 유지하기 위한 용도로 사용될 수 있습니다. 하지만 싱글톤 패턴을 남용하면 테스트와 확장성 측면에서 문제가 발생할 수 있으므로 적절한 상황에서 사용하는 것이 좋습니다.