티스토리 뷰

배운 것 기록/java

싱글톤

키죽 2022. 5. 29. 18:23

싱글톤

static으로 객체의 인스턴스가 한 개만 생성되는 디자인 패턴

인스턴스(객체) 가 절대적으로 한 개만 존재하는 것을 보장하고 싶을 때 사용

 

 

장점

  • 메모리 방지 낭비
  • 전역 인스턴스이기 때문에 다른 클래스의 인스턴스들이 데이터 공유하기 쉬움
  • 안드로이드의 경우 주요 클래스들을 전달하기 번거로운데 싱클톤 클래스로 어디서나 접근하도록 설계

 

문제점

  • 너무 많은 데이터를 공유시키면 유지보수와 테스트가 어려움(결합도가 높아지기 때문)
  • 멀티쓰레드 환경에서 동기화처리를 안하면 인스턴스가 두 개 생성될 수 있음

 

public class Px6 {

	public static void main(String[] args) {

		Normal n1 = new Normal();
		Normal n2 = new Normal();
		
		System.out.println(n1);	// 주소값
		System.out.println(n2);	// 주소값
		System.out.println(n1==n2);	// false
		
		Car car1 = Car.getInstance();
		Car car2 = Car.getInstance();
		
		System.out.println(car1);	// 주소값
		System.out.println(car2);	// 주소값
		System.out.println(car1==car2);	// true
	}
}


class Normal {	
}

class Car {
	private static Car car;
	private Car() {}
	
	static Car getInstance() {
		// new 키워드로 Car 객체를 생성한 적이 없으면
		if(car == null) {
			car = new Car();
		}
		return car;
	}
}

'배운 것 기록 > java' 카테고리의 다른 글

상속  (0) 2022.05.31
Scanner  (0) 2022.05.30
자동 증가값 생성 - static  (0) 2022.05.28
[eclipse] 최소값, 절대값  (0) 2022.05.26
배열에 순서대로 넣어서 출력하기(ArrayList)  (0) 2022.05.25
댓글
최근에 올라온 글
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함