本篇内容介绍了“c语言怎么实现建造小人”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
建造者模式(Builder Pattern):将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。建造者模式是一种对象创建型模式
建造者模式的定义将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示(DP)。《大话设计模式》举了一个很好的例子——建造小人,一共需建造6个部分,头部、身体、左右手、左右脚。与工厂模式不同,建造者模式是在导向者的控制下一步一步构造产品的。建造小人就是在控制下一步步构造出来的。创建者模式可以能更精细的控制构建过程,从而能更精细的控制所得产品的内部结构。
对于客户来说,只需知道导向者就可以了,通过导向者,客户就能构造复杂的对象,而不需要知道具体的构造过程。下面给出小人例子的代码实现。
[cpp] view plain copy print? class Builder { public: virtual void BuildHead() {} virtual void BuildBody() {} virtual void BuildLeftArm(){} virtual void buildrightArm() {} virtual void BuildLeftLeg() {} virtual void buildrightLeg() {} }; //构造瘦人 class ThinBuilder : public Builder { public: void BuildHead() { cout<<"build thin head"<<endl; } void BuildBody() { cout<<"build thin body"<<endl; } void BuildLeftArm() { cout<<"build thin leftarm"<<endl; } void buildrightArm() { cout<<"build thin rightarm"<<endl; } void BuildLeftLeg() { cout<<"build thin leftleg"<<endl; } void buildrightLeg() { cout<<"build thin rightleg"<<endl; } }; //构造胖人 class FatBuilder : public Builder { public: void BuildHead() { cout<<"build fat body"<<endl; } void BuildBody() { cout<<"build fat head"<<endl; } void BuildLeftArm() { cout<<"build fat leftarm"<<endl; } void buildrightArm() { cout<<"build fat rightarm"<<endl; } void BuildLeftLeg() { cout<<"build fat leftleg"<<endl; } void buildrightLeg() { cout<<"build fat rightleg"<<endl; } }; //构造的指挥官 class Director { private: Builder *m_pBuilder; public: Director(Builder *builder) { m_pBuilder = builder; } void Create() { m_pBuilder->BuildHead(); m_pBuilder->BuildBody(); m_pBuilder->BuildLeftArm(); m_pBuilder->buildrightArm(); m_pBuilder->BuildLeftLeg(); m_pBuilder->buildrightLeg(); } }; //客户的使用方式: int main() { FatBuilder Fat; Director director(&Fat); director.Create(); return 0; }
“c语言怎么实现建造小人”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程之家网站,小编将为大家输出更多高质量的实用文章!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。