I'm trying to implement a factory method in our application. Do you thing that this kind of implementation is a good one ? class
{
public:
Person(PersonData personData);
...
private:
int m_identifier;
std::string m_name;
};
class
Employee : public Person{
public:
Employee(PersonData personData);
...
private:
float m_hourlyWage;
};
class
Boss : public Person{
public:
Boss(PersonData personData);
...
private:
float m_annualSalary;
float m_bonus;
};
struct
PersonData{
int type;
int identifier;
std::string name;
float hourlyWage;
float annualSalary;
float bonus;
};
class
Factory{
public:
static Person* CreatePerson(PersonData personData);
};
Person* Factory::CreatePerson(PersonData personData)
{
switch (personData.type)
{
case PersonType_Employee:
return new Employee(personData);
break;
case PersonType_Boss:
return new Boss(personData);
break;
default:
throw std::invalid_argument("...");
break;
}
}
Thread Closed
This thread is kinda stale and has been closed but if you'd like to continue the conversation, please create a new thread in our Forums,
or Contact Us and let us know.