컴퓨터공학 💻 도서관📚

Part2. 2-19 static과 싱글톤 패턴 복습 본문

✅🌲강의 복습 노트/패캠 JavaSpring 강의,코드 복습

Part2. 2-19 static과 싱글톤 패턴 복습

들판속초록풀 2025. 2. 4. 15:36
public class CarFactory {

	private static CarFactory instance = new CarFactory();
	
	private CarFactory() {}     // 여기에는 static 쓰는거 아님
	
	public static CarFactory getInstance() {
		if(instance == null) {
			instance = new CarFactory();
		}
		return instance;
	}
	
	public Car createCar() {    // 반환형은 Car 클래스
		
		Car car = new Car();    // 여기에서 car 인스턴스 생성해준다
		return car;
	}
}

 

 

carNum 은 Car 클래스의 멤버변수니까 serialNum 은 Carfactory 클래스 보다는 Car 클래스에 있는게 더 직관적인 것 같다.

public class Car {

	private static int serialNum = 10000;
	private int carNum;
	
	public Car() {
		serialNum++;    // 10000 부터 시작한 다음, 1 더해주고, 지역변수에 넣어주기
		carNum = serialNum;
	}

	public int getCarNum() {    // 반환형은 int 
		return carNum;
	}

	public void setCarNum(int carNum) {
		this.carNum = carNum;
	}
}

 

public class CarFactoryTest {

	public static void main(String[] args) {
		CarFactory factory = CarFactory.getInstance();  // Carfactory 클래스로 참조
		Car mySonata = factory.createCar();      // factory 인스턴스로 참조
		Car yourSonata = factory.createCar();    // factory 인스턴스로 참조
		
		System.out.println(mySonata.getCarNum());
		System.out.println(yourSonata.getCarNum());
		
	}
}
Comments