J
jimryanabao
hello, im trying to solve my problem using factory method but im not
sure if im doing it correctly this is my sample code
class Base {
public:
Base();
virtual ~Base;
virtual void draw();
};
class Item1 : public Base {
public:
Item1();
~Item1();
void draw();
};
class Item2 : public Base {
public:
Item2();
~Item2();
void draw();
};
// factory method ?!
Base * getItem(int code)
{
if (code == 1 || code == 2)
return new Item1();
else if (code == 3 || code == 4)
return new Item2();
else
return 0;
}
Base * item = getItem(code);
if (item)
item->draw();
delete item;
the sad part is, "code" should have atleast 50 possible values and i
have atleast 8 classes derived from a single base class. am i doing
this right?! any suggestions would be appreciated, thanks...
sure if im doing it correctly this is my sample code
class Base {
public:
Base();
virtual ~Base;
virtual void draw();
};
class Item1 : public Base {
public:
Item1();
~Item1();
void draw();
};
class Item2 : public Base {
public:
Item2();
~Item2();
void draw();
};
// factory method ?!
Base * getItem(int code)
{
if (code == 1 || code == 2)
return new Item1();
else if (code == 3 || code == 4)
return new Item2();
else
return 0;
}
Base * item = getItem(code);
if (item)
item->draw();
delete item;
the sad part is, "code" should have atleast 50 possible values and i
have atleast 8 classes derived from a single base class. am i doing
this right?! any suggestions would be appreciated, thanks...