싱글톤 패턴(Singleton Pattern)

Jan 06, 2024
싱글톤 패턴(Singleton Pattern)
 
💡
하나의 프로그램 내에서 하나의 인스턴스만 생성해야 하는 경우에 사용하는 패턴. 객체를 호출할 때 new 를 하지 않고, 정적 메서드 getInstance() 를 호출해서 사용한다.
 
 
notion image
 
싱글톤 패턴은 똑같은 인스턴스를 새로 만들지 않고 기존의 인스턴스를 사용하는 방식이다.
회사의 모든 직원이 하나의 자판기에서 커피를 뽑는 것과 같다.
 
class Single { private static Single instance = new Single(); private void Single() {} public static Single getInstance() { return instance; } } public class Sington { public static void main(String[] args) { Single s1 = Single.getInstance(); Single s2 = Single.getInstance(); System.out.println(s1); System.out.println(s2); } }
 
싱글톤 패턴은 imstance 변수와 생성자 메서드에 private 를 걸어 외부에서 접근 할 수 없게 설정한다.
그리고 getInstance() 메서드를 만들어서 외부에서 사용하려고 할때 getInstance() 를 호출하는 방식으로 사용한다.
 
notion image
 
싱글톤 패턴은 getInstance() 호출이 반복적으로 이뤄져도 처음 생성된 객체를 동일하게 반환해준다.
 
 
 

싱글톤 패턴의 장단점

 
장점
  • 최초 한번 new 를 통해 메모리에 띄우기 때문에 메모리 낭비를 줄이고, 생성된 변수를 사용하기 때문에 속도적인 측면에서도 유리
  • 싱글톤 인스턴스가 static 으로 선언되었기 때문에 다른 클래스에서 접근하여 사용할 수 있다.
 
단점
  • 멀티 스레드 환경에서 동시 접근 가능하기 때문에 스레드 간섭이 일어날 수 있다.
  • 객체 간의 결합도가 높아져 유지보수가 어려워진다.
 
Share article

{CODE-RYU};