日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

抽象工廠的例子

 wtf_soft 2006-04-18

抽象工廠沒有講明白,這里填加一個比較完整的例子.我覺得明白了抽象工廠目標(biāo)是通過一個抽象工廠的子類來建立一系列同一性質(zhì)的產(chǎn)品這點(diǎn),就理解該模式了.

#include <iostream>
#include <string>
using namespace std;

class General
{
public:

 virtual void Assault() = 0;
};
class GirlGeneral : public General
{
private:
 string m_strName;
public:
 GirlGeneral(string strName):m_strName(strName){}

 void Assault()
 {
  cout << " 女將軍 " << m_strName << "正在攻擊!"<< endl;
 }
};
class ManGeneral : public General
{
private:
 string m_strName;
public:
 ManGeneral(string strName):m_strName(strName){}

 void Assault()
 {
  cout << " 將軍 " << m_strName << "正在攻擊!"<< endl;
 }
};


class Army
{
public:
 virtual void war()
 {  
 }
 
};
class GirlArmy : public Army
{
public:
 void war()
 {
  cout << "女軍戰(zhàn)斗" << endl;
 
 }
};
class ManArmy : public Army
{
public:
 void war()
 {
  cout << "男軍戰(zhàn)斗" << endl;
 
 }
};

//抽象工廠的基類

class AbstractFactory
{
public:
 virtual General* CreateGeneral(){return NULL;}
 virtual Army* CreateArmy(){return NULL;}
};
//創(chuàng)建所有和女性有關(guān)的對象
class GirlFactory : public AbstractFactory
{
 
public:
 GirlFactory(){}

 General *CreateGeneral(string strName)
 {
  return new GirlGeneral(strName);
 }
 Army *CreateArmy()
 {
  return new GirlArmy();
 }
};

//創(chuàng)建所有和男性有關(guān)的對象
class ManFactory : public AbstractFactory
{
public:
 General *CreateGeneral(string strName)
 {
  return new ManGeneral(strName);
 }
 Army *CreateArmy()
 {
  return new ManArmy();
 }
};


int main(int argc, char* argv[])
{
 GirlFactory gF;
 ManFactory  mF;

 //抽象工廠強(qiáng)調(diào)的是建立一系列的產(chǎn)品
 //通過gF,我們就可以創(chuàng)建所有和女性有關(guān)的對象
 General* pGeneral = gF.CreateGeneral("女將軍");
 pGeneral->Assault();

 Army *pArmy = gF.CreateArmy();
 pArmy->war();

 //通過mF,我們就可以創(chuàng)建所有和女性有關(guān)的對象
 pGeneral = mF.CreateGeneral("男將軍");
 pGeneral->Assault();

 pArmy = mF.CreateArmy();
 pArmy->war();


 return 0;
}

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多