您需要一輛什麼類型汽車,可以直接從工廠裏面提貨,而不用去管這輛汽車是怎麼做出來的,以及這個汽車裏面的具體實現。
#include<iostream>
using namespace std;
class Shap
{
public:
virtual void draw()=0;
};
class Rectangle : public Shap
{
public:
void draw()
{
cout << "show rectangel" << endl;
}
};
class Triangle :public Shap
{
public:
void draw()
{
cout << "show triangle" << endl;
}
};
class shapFactory
{
public:
Shap* getShap(string shapType);
};
Shap* shapFactory::getShap(string shapType)
{
if (shapType == "RECT")
{
return new Rectangle();//此處內存未釋放,在下面釋放(工廠只管生產產品)
}
else if (shapType == "TRIANGLE")
{
return new Triangle();
}
else
return NULL;
}
int main()
{
shapFactory myFactory;
Shap * myrect = myFactory.getShap("RECT");
if (myrect)
{
myrect->draw();
delete myrect; //釋放內存
myrect = NULL;
}
system("pause");
return 0;
}