본문 바로가기
자바/개념

[java] 싱글톤 패턴 응용

by drCode 2021. 1. 26.
728x90
반응형

안녕하세요.

이번 포스팅은 싱글톤 패턴 응용입니다.

 

싱글톤 패턴 만드는 방법

(1) private으로 생성자 만들기

(2) static으로 생성자를 메모리에 적재

(3) 메소드(반환형 : class) getInstance를 통해 접근하기

 

자동차 공장이 있고, 자동차를 만드는 작업을 할 겁니다.

 

자동차 공장을 싱글톤 패턴으로 구현하고,

자동차 고유번호를 자동차 공장에서 부여하는 걸로 하겠습니다.

 

먼저 자동차 클래스를 만들어줍니다.

package singleton;

public class Car {
	private int carNum;
	
	public Car() {}
	
	public void setCarNum(int carNum) {
		this.carNum = carNum;
	}
	
	public int getCarNum() {
		return carNum;
	}
}

getter와 setter를 생성해주세요.

 

다음은 자동차공장을 만듭니다.

package singleton;

public class CarFactory {
	private static CarFactory instance = new CarFactory();
	private CarFactory() {};
	private static int serialNum = 10001;
	
	public Car createCar() {
		Car temp = new Car();
		temp.setCarNum(serialNum);
		serialNum++;
		return temp;
	}
	
	public static CarFactory getInstance() {
		return instance == null ? new CarFactory() : instance;
	}
}

serialNum 변수를 자동차 공장이 가지고 있어야

자동차번호를 겹치지 않게 부여할 수 있습니다.

 

다음은 출력을 위한 Test클래스입니다.

package singleton;

public class CarFactoryTest {
	public static void main(String[] args) {
		CarFactory factory = CarFactory.getInstance();
		Car k5 = factory.createCar();
		Car sonata = factory.createCar();
		System.out.println(k5.getCarNum());
		System.out.println(sonata.getCarNum());
	}
}

 

이것을 출력하면,

겹치지 않게 나옵니다.

 

이상으로 포스팅을 마치겠습니다.

 

감사합니다.

728x90
반응형

'자바 > 개념' 카테고리의 다른 글

[java] 묵시적 형 변환  (0) 2021.01.27
[java] 상속 super  (0) 2021.01.27
[java] 상속에서 클래스 생성  (0) 2021.01.27
[java] 상속  (1) 2021.01.27
[java] 싱글톤 패턴  (0) 2021.01.26

댓글