Language/Java Design Pattern

Java Design Pattern - 싱글톤 패턴(Singleton Pattern)

임빈영 2022. 11. 18. 17:33

싱글톤 패턴(Singleton Pattern)

싱글톤 패턴이란?

싱글톤 패턴이란, 인스턴스가 프로그램 내에서 오직 하나만 생성되는 것을 보장하고, 프로그램 어디에서든 이 인스턴스에 접근할 수 있도록 하는 패턴이다.

즉, 인스턴스가 사용될 때 똑같은 인스턴스를 여러 개 만드는 것이 아니라, 기존에 생성했던 동일한 인스턴스를 사용하게끔 하는 것이다.

 

싱글톤 패턴의 구현
public class SingleObject {
    private static SingleObject singleObject = null;
    
    private SingleObject() {
    }
    
    public static SingleObject getInstance() {
        if (singleObject == null) {
            singleObject = new SingleObject();
        }
        return singleObject;
    }
}

우선, 외부에서 객체를 생성할 수 없도록 생성자를 private로 선언한다. 객체 생성에 대한 관리를 내부적으로 하겠다는 의미이다.

외부에서 SingleObject 객체를 생성할 수 없기 때문에, 미리 생성된 자신을 반환할 수 있도록 getInstance() 메서드를 정의한다.

생성자를 private로 선언했기 때문에 객체를 생성할 수 없으므로, getInstance() 메서드가 클래스에 정의되도록 static 제어자를 사용했다.

 

public class SingletonPatternTest {

    @Test
    public void 싱글톤_패턴_테스트() {
        for (int i = 0; i < 5; i++) {
            SingletonObject singletonObject = SingleObject.getInstance();
            System.out.println(singletonObject.hashCode());
        }
    }
}

정말로 하나의 인스턴스를 호출하는지 확인해보도록 하겠다.

 

 

반복문을 돌면서 객체의 해시 코드를 가져오도록 했는데, 모두 같은 객체임을 확인했다.


출처

https://victorydntmd.tistory.com/293

 

728x90