-
说明
-
案例
-
书接上回
- 鞋贩子规模扩大,想在进店门口摆放一个吉祥物。
- 而且吉祥物需要用乐高完成。
- 那么乐高小零件就是最小基本元素,而最终拼凑的吉祥物就是产物。
-
代码
#include<iostream> #include<vector> #include<string> class LeGao { public: virtual void Action() = 0; }; class Tou : public LeGao { public: void Action() override { std::cout << "an shang yi ge tou!" << std::endl; } }; class ShenTi : public LeGao { public: void Action() override { std::cout << "an shang shen zi!" << std::endl; } }; class Tui : public LeGao { public: void Action() override { std::cout << "an shang yi tiao tui!" << std::endl; } }; class JiXiangWu { public: void PinJie(LeGao * ling_jian) { cheng_pin.emplace_back(ling_jian); } void ZenMeZhuangDe() { for(const auto& le_gao:cheng_pin) { le_gao->Action(); } } private: std::vector<LeGao*> cheng_pin; }; class Builder { public: JiXiangWu DanTouLang() { JiXiangWu lang; lang.PinJie(new Tou()); lang.PinJie(new ShenTi()); lang.PinJie(new Tui()); lang.PinJie(new Tui()); lang.PinJie(new Tui()); lang.PinJie(new Tui()); return lang; } JiXiangWu ShuangTouLang() { JiXiangWu lang; lang.PinJie(new Tou()); lang.PinJie(new Tou()); lang.PinJie(new ShenTi()); lang.PinJie(new Tui()); lang.PinJie(new Tui()); lang.PinJie(new Tui()); lang.PinJie(new Tui()); return lang; } }; int main() { Builder builder; { std::cout << "--------------------------------------------" << std::endl; auto lang = builder.DanTouLang(); lang.ZenMeZhuangDe(); } { std::cout << "--------------------------------------------" << std::endl; auto lang = builder.ShuangTouLang(); lang.ZenMeZhuangDe(); } }
-
-
总结
C++ 04 建造者模式
最新推荐文章于 2025-12-12 16:37:00 发布
2244

被折叠的 条评论
为什么被折叠?



