public class CarFactoryTest {
public static void main(String[] args) {
CarFactory factory = CarFactory.GetInstance();
Car mySonata = factory.createCar();
Car yourSonata = factory.createCar();
System.out.println(mySonata.getCarNum()); // 10001 출력
System.out.println(yourSonata.getCarNum()); // 10002 출력
}
}
- 위의 test Code가 올바르게 실행될 수 있도록 Car, CarFactory 클래스를 구현해보자.
- 우선, Carfactory의 객체인 factory가 Class name의 GetInstance 메소드로 호출해왔다.
- 즉, GetInstance()메소드의 type이 static type인 것을 알 수 있다.
- Car 클래스에서 mySonata 객체를 생성하고, factory 객체의 createCar 메소드를 생성했다.
- 마찬가지로 yourSonata 객체를 생성하고, factroy 객체의 createCare 메소드를 불러왔다.
- 생성된 각각의 Car 객체의 CarNum을 불러오는 getCarNum 메소드를 생성하고, CarFactory에서는 createCar와 GetInstance 메소드를 생성해보자.
아래는 CarFactory 클래스이다.
public class CarFactory {
private static CarFactory instance = new CarFactory();
private CarFactory() {
}
public static CarFactory GetInstance() {
if(instance == null)
{
instance = new CarFactory();
}
return instance;
}
//새로운 Car 객체를 생성할 createCar 메소드
public Car createCar() {
Car car = new Car();
Car.origianl++;
car.carNum = Car.origianl;
return car;
}
}
아래는 Car 클래스이다.
public class Car {
static int origianl = 10000; // 초기번호
public int carNum = 0; // static 값인 original을 담을 변수
public int getCarNum() {
return carNum;
}
}
'개발공부 > 객체 지향 입문' 카테고리의 다른 글
[Java] 21. 객체 배열 사용하기 (0) | 2022.01.31 |
---|---|
[Java] 20. 자료를 순차적으로 한꺼번에 관리하는 방법 - 배열(array) (0) | 2022.01.31 |
[Java] 18. static 응용 - 싱글톤 패턴 (singleton pattern) (0) | 2022.01.31 |
[Java] 17. static메서드의 구현과 활용, 변수의 유효 범위 (0) | 2022.01.30 |
[Java] 16. 여러 인스턴스에서 공통으로 사용하는 변수를 선언하자 - static 변수 (0) | 2022.01.30 |