JAVA

[JAVA] 싱글톤 (singleton) 패턴

noName123495 2022. 2. 19. 23:30

객체를 static 하게 두어 어디서 객체 instance를 사용하던 최초에 생긴 instance를 공유해서 사용하도록 하는 패턴

 

객체 생성을 하나만 하는 것이 목적이기 때문에, 생성자를 private 하게 설정.

 

보통 객체 생성 및 조회는 getInstance() 라는 public method를 이용해서 진행

 

public class CarClass {

	private static CarClass carClass;
	
	private CarClass() {
		super();
		System.out.println("Constructor");
		// TODO Auto-generated constructor stub
	}
	
	public static CarClass getInstance() {
		if(carClass == null) {
			carClass = new CarClass();
		}
		return carClass;
	}
	
	private static int speed = 0;
	
	public static void speedUp() {
		speed++;
		System.out.println("현재 속도 : " + speed);
	}
	
	public static void speedDown() {
		speed--;
		System.out.println("현재 속도 : " + speed);
	}
}

public class SingletonMain {

	public static void main(String[] args) {
		// TODO Auto-generated method stub

		CarClass carClass = CarClass.getInstance();
		CarClass carClass1 = CarClass.getInstance();
		
		carClass.speedUp();
		carClass1.speedUp();
	}

}

---->
Constructor
현재 속도 : 1
현재 속도 : 2
반응형