c++ factory method pattern(팩토리 메소드 패턴) example
factory method 패턴은 부모 클래스에서 자식 클래스가 어떤 객체를 생성할지 결정하도록 하는 패턴 이다.
부모 클래스 - Car
자식 클래스 - carSedan, carSUV
코드
#include<iostream>
#include<vector>
using namespace std;
class Car
{
public:
// Factory 함수 -> maekCar
static Car *makeCar(int index);
virtual void info() = 0;
};
int main()
{
vector<Car*> data;
int index;
while (true)
{
cout << "carSedan(1) carSUV(2) END(0): ";
cin >> index;
if (index == 0){
break;
}
data.push_back(Car::makeCar(index));
}
for (int i = 0; i < data.size(); i++){
data[i]->info();
}
for (int i = 0; i < data.size(); i++){
delete data[i];
}
}
class carSedan : public Car
{
public:
void info() {
cout << "sedan info" << endl;
}
};
class carSUV : public Car
{
public:
void info() {
cout << "SUV info" << endl;
}
};
Car* Car::makeCar(int index)
{
if (index == 1){
return new carSedan;
}
else if (index == 2){
return new carSUV;
}
}
결과
carSedan(1) carSUV(2) END(0): 1
carSedan(1) carSUV(2) END(0): 2
carSedan(1) carSUV(2) END(0): 2
carSedan(1) carSUV(2) END(0): 1
carSedan(1) carSUV(2) END(0): 0
sedan info
SUV info
SUV info
sedan info
계속하려면 아무 키나 누르십시오 . . .