設計模式__工廠模式

您需要一輛什麼類型汽車,可以直接從工廠裏面提貨,而不用去管這輛汽車是怎麼做出來的,以及這個汽車裏面的具體實現。

#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;
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章