-
[디자인패턴] 싱글톤 패턴 (Singleton)Code/디자인패턴 2021. 11. 22. 17:34
싱글톤 패턴
전역변수를 사용하지 않고 객체를 하나만 생성하도록 하여, 생성된 객체를 어디든지 참조할 수 있도록 하는 패턴.
객체의 인스턴스를 오로지 1개만 생성하여 사용한다.
장점
1. 메모리 낭비 방지.
2. 원활한 데이터 공유.
단, 여러 클래스의 인스턴스에서 싱글톤 인스턴스의 데이터에 동시 접근하면 동시성 문제가 발생할 수 있다.
예시
public class Singleton { private static Singleton instance = new Singleton(); private Singleton() { // 생성자는 외부에서 호출못하게 private 으로 지정해야 한다. } public static Singleton getInstance() { return instance; } public void say() { System.out.println("hi, there"); } }
문제점
다중 스레드에서 인스턴스가 1개 이상 생성되는 경우가 발생할 수 있다.
그러므로, 다중 스레드 어플리케이션 이용시, 아래와 같은 방법으로 해결한다.
1. 정적 변수에 인스턴스를 만들어 초기화.
2. 인스턴스를 만드는 메서드에 동기화.
참고 사이트
https://tecoble.techcourse.co.kr/post/2020-11-07-singleton/
싱글톤(Singleton) 패턴이란?
이번 글에서는 디자인 패턴의 종류 중 하나인 싱글톤 패턴에 대해 알아보자. 싱글톤 패턴이 무엇인지, 패턴 구현 시 주의할 점은 무엇인지에 대해 알아보는 것만으로도 많은 도움이 될 것이라
tecoble.techcourse.co.kr
https://gmlwjd9405.github.io/2018/07/06/singleton-pattern.html
[Design Pattern] 싱글턴 패턴이란 - Heee's Development Blog
Step by step goes a long way.
gmlwjd9405.github.io