객체지향 (OOP)/디자인 패턴

싱글톤 패턴(Singleton Pattern)

고인돌개발자 2021. 6. 28. 21:38

전에 올린 포스팅 참고 : https://old-developer.tistory.com/49?category=931274 

 

Java Application - 싱글톤 패턴(Singleton pattern)

학습목표  - 1. OOP 에서 싱글톤의 개념을 정의하고 이해한다.  - 2. 이해한 개념을 Java 코드로 구현할 수 있다.  * 참고 - 구글 검색, 구글 이미지, 유투브 : www.youtube.com/watch?v=5jgpu9-ywtY  youngji..

old-developer.tistory.com

 

 

이전에 심도있게 스터디한 내용이라 , 이번에는 책 내용만 정리해봄.


싱글톤 패턴 [위키피디아]

 소프트웨어 디자인 패턴에서 싱글턴 패턴(Singleton pattern)을 따르는 클래스는, 생성자가 여러 차례 호출되더라도 실제로 생성되는 객체는 하나이고 최초 생성 이후에 호출된 생성자는 최초의 생성자가 생성한 객체를 리턴한다. 이와 같은 디자인 유형을 싱글턴 패턴이라고 한다. 주로 공통된 객체를 여러개 생성해서 사용하는 DBCP(DataBase Connection Pool)와 같은 상황에서 많이 사용된다.


예제소스

public class Singleton {
	static Singleton singletonObject; // 정적 참조 변수

	private Singleton() {
	}; // private 생성자

	// 객체 반환 정적 메서드
	public static Singleton getInstance() {
		if (singletonObject == null) {
			singletonObject = new Singleton();
		}

		return singletonObject;
	}
}

 

public class Client {
	public static void main(String[] args) {
		// private 생성자임으로 new 할 수 없다.
		// Singleton s = new Singleton();

		Singleton s1 = Singleton.getInstance();
		Singleton s2 = Singleton.getInstance();
		Singleton s3 = Singleton.getInstance();

		System.out.println(s1);
		System.out.println(s2);
		System.out.println(s3);

		s1 = null;
		s2 = null;
		s3 = null;
	}
}

참고서적 : 스프링 입문을 위하 자바 객체지향의 원리와 이해