JAVA/DesignPattern

Design Pattern 디자인패턴 Singleton Pattern 싱글톤 패턴

호두밥 2021. 12. 14. 00:06

싱글톤 패턴 Singleton Pattern

객체가 한 개만 생성될 수 있도록 관리하는 패턴입니다.

인스턴스 객체를 생성할 필요 없이 바로 객체에 접근할 수 있는 기능을 제공합니다.

싱글톤 패턴의 장단점

장점

  • 객체를 하나만 생성해서 관리할 수 있습니다.
  • 어디서든지 객체에 접근할 수 있도록 할 수 있습니다.
  • 최초 호출 시에만 객체를 생성합니다.

단점

  • 멀티 스레드 환경에서 객체를 여러번 생성하지 않도록 별도의 조치가 필요합니다.
  •  프레임워크에서는 보통 상속에 의존해 객체를 생성하기 때문에 싱글톤 패턴을 적용하고 테스트하는 것이 어려울 수 있습니다. 
  • 싱글톤 패턴을 이용하면, 캡슐화가 깨진 나쁜 설계가 드러나지 않을 수도 있습니다.

* 캡슐화 : 객체지향 언어에서 객체의 속성과 행위를 외부에서 접근할 수 없도록 감추는 특징을 의미합니다. 

싱글톤 패턴 구현

public class singleton {

    private static singleton instance ;

    public singleton() {
    }

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

참조

*https://ko.wikipedia.org/wiki/%EC%BA%A1%EC%8A%90%ED%99%94

* https://refactoring.guru/design-patterns/singleton

* https://www.tutorialspoint.com/design_pattern/singleton_pattern.htm