싱글톤 패턴
개요
싱글톤 패턴은 객체지향 디자인 패턴 중 하나로, 오직 하나의 인스턴스만 생성하도록 보장하는 패턴이다. 이러한 패턴을 사용하면, 어디서나 인스턴스를 참조하고 수정할 수 있으며, 전역 변수를 사용하지 않고도 인스턴스에 접근할 수 있다.
구현
싱글톤 패턴을 구현하기 위해서는, 클래스 내부에 private static 변수를 선언하고, 생성자를 private으로 선언해야 한다. 그리고 인스턴스를 반환하는 public static 메소드를 정의하여, 이 메소드 내에서는 인스턴스가 생성되지 않았을 경우에만 인스턴스를 생성하도록 해야 한다.
public class Singleton {
private static Singleton instance;
private Singleton() {
// private constructor
}
public static Singleton getInstance() {
if (instance == null) {
instance = new Singleton();
}
return instance;
}
}
Plain Text
복사
활용
싱글톤 패턴은 자주 사용되는 객체를 인스턴스화하여 메모리를 절약하고, 객체의 생성과 소멸을 제어할 수 있는데 사용된다. 또한, 싱글톤 패턴은 전역 변수를 사용할 때 발생할 수 있는 문제점(객체의 상태 변화 등)을 회피할 수 있다.
예시
자바에서는 많은 클래스들이 싱글톤 패턴을 사용하고 있다. 예를 들어, Runtime 클래스는 JVM에서 단 하나의 인스턴스만 존재하도록 보장한다. 또한, Logger 클래스도 싱글톤 패턴으로 구현되어 있다.
결론
싱글톤 패턴은 유용한 디자인 패턴 중 하나이다. 하지만, 사용 방법에 따라 객체지향적인 설계 원칙을 위반할 수 있다는 점을 주의해야 한다. 또한, 멀티스레드 환경에서 동기화 문제가 발생할 수 있으므로, 이러한 문제를 고려하여 구현해야 한다.