투케이2K

154. (java/자바) 싱글톤 (Singleton) 생성 및 사용하기 본문

Java

154. (java/자바) 싱글톤 (Singleton) 생성 및 사용하기

투케이2K 2021. 2. 9. 08:29

/* =========================== */

[ 개발 환경 설정 ]

개발 툴 : Eclipse

개발 언어 : Java

/* =========================== */

/* =========================== */

[소스 코드]

 

package ex;

class Single{
	//싱글톤 패턴은 하나의 인스턴스 생성만 구현한 것이다
	private static Single instance;
	private Single() {
		//클래스 생성자를 private로 만들어서 외부에서 생성하지 못하게함
	}
	//외부에서 인스턴스를 사용할 수 있도록 public으로 선언한다
	public static Single getInstance() {
		//instance가 null이라면 new를 생성한다
		if(instance == null) {
			instance = new Single();
		}
		//외부에서 getInstance 호출 시 null이 아니므로 하나의 인스턴스만 리턴된다
		return instance;
	}
}

public class MainActivity18 {
	
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		System.out.println("[싱글톤 (Singleton) 생성 및 사용하기]");
		
		/*[설 명]
		 * 1. 싱글톤이란 어떤 클래스가 최초 한번만 메모리를 할당하고(Static) 그 메모리에 객체를 만들어 사용하는 디자인 패턴입니다
		 * 2. 쉽게 설명해, 생성자의 호출이 반복적으로 이뤄어져도 실제로 생성되는 객체는 최초 생성된 객체를 반환 해주는 것입니다
		 * 3. 사용이유 : 한번의 객체 생성으로 재사용이 가능하기 때문에 메모리 낭비를 방지할 수 있습니다
		 * 4. 단점 : 싱글톤을 사용해 너무 많은 일 처리와 데이터 공유 작업 시 싱글톤을 사용하는 다른 클래스 들은 서로 결합도(의존도)가 높아지는 문제가있습니다 
		 * */

		Single one_single = Single.getInstance();
		Single two_single = Single.getInstance();
		
		if(one_single == two_single) {
			System.out.println("결과 : 두 객체 같음");	
		}
		else {
			System.out.println("결과 : 두 객체 다름");
		}
		
	}//메인 종료
	
}//클래스 종료

/* =========================== */

[결과 출력]

[싱글톤 (Singleton) 생성 및 사용하기]

결과 : 두 객체 같음

/* =========================== */

/* =========================== */

[요약 설명]

* 1. 싱글톤이란 어떤 클래스가 최초 한번만 메모리를 할당하고(Static) 그 메모리에 객체를 만들어 사용하는 디자인 패턴입니다

* 2. 쉽게 설명해, 생성자의 호출이 반복적으로 이뤄어져도 실제로 생성되는 객체는 최초 생성된 객체를 반환 해주는 것입니다

* 3. 사용이유 : 한번의 객체 생성으로 재사용이 가능하기 때문에 메모리 낭비를 방지할 수 있습니다

* 4. 단점 : 싱글톤을 사용해 너무 많은 일 처리와 데이터 공유 작업 시 싱글톤을 사용하는 다른 클래스 들은 서로 결합도(의존도)가 높아지는 문제가있습니다

/* =========================== */

반응형
Comments