日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

1_4 BuilderMode 建造者模式

發布時間:2024/4/11 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 1_4 BuilderMode 建造者模式 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
// 定義:將一個復雜對象的構建與其表示分離,使得同樣的建造過程 // 可以創建不同的表示 // // 模式舉例:捏泥人,要捏頭,捏身體,捏胳膊,捏腿,胖人的捏法 // 和瘦人的捏法過程差不多,出來的人差別很大 // // 模式特點:必有一個director類和一些Builder類 // // 模式知識:該模式是一個典型的將行為抽象成對象 // //#include<iostream> #include<string> using namespace std;class Mudman { public:void setHeadSize(int size){m_headsize = size;}void setBodySize(int size){m_bodysize = size;}void setArmSize(int size){m_armsize = size;}void setLegSize(int size){m_legsize = size;}void showMan(){cout <<"mud man head size "<<m_headsize<<" mud man body size "<<m_bodysize<<" mud man arm size "<<m_armsize<<" mud man leg size "<<m_legsize;}private:int m_headsize;int m_bodysize;int m_armsize;int m_legsize; };//Builder這里要有獲取到生成泥人的接口 class Builder { public:virtual void buildHead()=0;virtual void buildBody()=0;virtual void buildArm()=0;virtual void buildLeg()=0;virtual Mudman * getMudman()=0; };class FatmanBuilder : public Builder { public:FatmanBuilder(Mudman * man):m_man(man){}virtual void buildHead(){m_man->setHeadSize(8);}virtual void buildBody(){m_man->setBodySize(8);}virtual void buildArm(){m_man->setArmSize(8);}virtual void buildLeg(){m_man->setLegSize(8);}virtual Mudman * getMudman(){return m_man;} private:Mudman * m_man; };class ThinmanBuilder : public Builder { public:ThinmanBuilder(Mudman * man):m_man(man){}virtual void buildHead(){m_man->setHeadSize(5);}virtual void buildBody(){m_man->setBodySize(5);}virtual void buildArm(){m_man->setArmSize(5);}virtual void buildLeg(){m_man->setLegSize(5);}virtual Mudman * getMudman(){return m_man;} private:Mudman * m_man; };class Director { public:Director(Builder * builder):m_builder(builder){}//建造者只管建造,沒有返回值的void buildMudMan(){m_builder->buildHead();m_builder->buildBody();m_builder->buildArm();m_builder->buildLeg();} private:Builder * m_builder; };int main() {Builder * builder = new FatmanBuilder(new Mudman);Director * director = new Director(builder);director->buildMudMan();builder->getMudman()->showMan();return 0; }

?

總結

以上是生活随笔為你收集整理的1_4 BuilderMode 建造者模式的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。