C++

c++ factory method pattern(팩토리 메소드 패턴) example

샬룻 2017. 10. 29. 02:53

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

계속하려면 아무 키나 누르십시오 . . .