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 |
댓글