본문 바로가기

디자인패턴

[디자인패턴] Singleton 패턴 (Feat.Java)

728x90
반응형
SMALL

싱글톤 패턴 (Singleton Pattern) 이란?

  • 객체 지향 프로그래밍에서 자주 사용되는 패턴으로 클래스의 인스턴스 즉, 객체를 하나만 생성하여 사용하는 패턴이다.
  • 따라서, 이 클래스안에 인스턴스가 하나 임을 보장 해야하며 이로인한 불필요한 메모리를 최소화 할 수 있다.
  • 리소스를 공유 하거나 상태를 관리하는데 사용된다.

public class Singleton {
    private static Singleton instance;
    
    private Singleton() {}  //private으로 생성자 소환
    
    public static Singleton getInstance() {
        if (instance == null) {
            instance = new Singleton();
        }
        return instance;
    }
}
  • getInstance() 메소드는 항상 동일한 instance를 반환
  • 생성자를 private 으로 만들어 외부에서의 인스턴스 생성을 막음
public class Main {
    public static void main(String[] args) {
        Singleton s1 = Singleton.getInstance();
        Singleton s2 = Singleton.getInstance();

        System.out.println(s1.equals(s2));  // true 둘이 같은 값을 가지고 있구나 
        System.out.println(s1 == s2);       //true 아 둘이 같은 주소값을 가지고 있구나 (두개 같은거구나)
    }
}
  • Singleton 클래스를 2번 getInstance() 를 했지만, 두개의 객체는 같은 주소값 즉, 메모리에 있는 하나의 instance를 바라보고 있음
728x90
반응형
LIST

'디자인패턴' 카테고리의 다른 글

[디자인패턴] Strategy(전략) 패턴 (Feat.Java)  (0) 2024.02.15