Good factory implementation ? (C++)

Joined
Jan 10, 2007
Messages
43,898
Location
In The Machine
I'm trying to implement a factory method in our application. Do you thing that this kind of implementation is a good one ?

class Person
{
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;
***}
}


More...

View All Our Microsoft Related Feeds
 
Back
Top