建造者模式(Builder)在C语言中的应用有哪些特点?

2026-05-20 08:261阅读0评论SEO问题
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计596个文字,预计阅读时间需要3分钟。

建造者模式(Builder)在C语言中的应用有哪些特点?

构造者模式与工厂模式的最大区别在于,构造者模式更注重创建过程的一贯性,强调创建一系列相关联的对象,如流线化工作流程或工业生产过程。而工厂模式更侧重于不同种类工厂对不产品类的生产,强调的是对不同工厂和产品的分类管理,更统一地处理不同产品的创建。

建造者模式与工厂模式最大的区别在与建造者模式更注重的是创建的一系列过程,如流水化作业,工厂模式强调的是区分不同的工厂和产品,而建造者模式更注重的统一不同产品在流水线上的工序,达到统一作业。

作用

建造者模式是将一个复杂对象和他的构造和组装过程分离,这样再重复创建不同对象时使用相同的流程进行建造。对于调用者来说,只需要知道产品的类型,而不需要知道具体的组装过程。

类视图

代码实现

class Builder { public: virtual void SelectCpu()= 0; virtual void SelectMatherboard() = 0; virtual void SelectMem() = 0; virtual void SelectDisk() = 0; virtual void SelectPower() = 0; virtual void SelectShell() = 0; }; //构造PC class PCBuilder : public Builder { public: void SelectCpu() { cout<<"Select PC Cpu"<<endl; } void SelectMatherboard() { cout<<"Select PC Matherboard"<<endl; } void SelectMem() { cout<<"Select PC Mem"<<endl; } void SelectDisk() { cout<<"Select PC Disk"<<endl; } void SelectPower() { cout<<"Select PC Power"<<endl; } void SelectShell() { cout<<"Select PC Shell"<<endl; } }; //构造Notebook class NoteBookBuilder : public Builder { public: void SelectCpu() { cout<<"Select NoteBook Cpu"<<endl; } void SelectMatherboard() { cout<<"Select NoteBook Matherboard"<<endl; } void SelectMem() { cout<<"Select NoteBook Mem"<<endl; } void SelectDisk() { cout<<"Select NoteBook Disk"<<endl; } void SelectPower() { cout<<"Select NoteBook Power"<<endl; } void SelectShell() { cout<<"Select NoteBook Shell"<<endl; } }; //构造的指挥官 class Director { private: Builder *m_pBuilder; public: Director(Builder *builder) { m_pBuilder = builder; } void Create(){ m_pBuilder->SelectCpu(); m_pBuilder->SelectMatherboard(); m_pBuilder->SelectMem(); m_pBuilder->SelectDisk(); m_pBuilder->SelectPower(); m_pBuilder->SelectShell(); } }; //调用 int main() { NoteBookBuilder thin; Director director(&thin); director.Create(); return 0; }

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持自由互联。

建造者模式(Builder)在C语言中的应用有哪些特点?

本文共计596个文字,预计阅读时间需要3分钟。

建造者模式(Builder)在C语言中的应用有哪些特点?

构造者模式与工厂模式的最大区别在于,构造者模式更注重创建过程的一贯性,强调创建一系列相关联的对象,如流线化工作流程或工业生产过程。而工厂模式更侧重于不同种类工厂对不产品类的生产,强调的是对不同工厂和产品的分类管理,更统一地处理不同产品的创建。

建造者模式与工厂模式最大的区别在与建造者模式更注重的是创建的一系列过程,如流水化作业,工厂模式强调的是区分不同的工厂和产品,而建造者模式更注重的统一不同产品在流水线上的工序,达到统一作业。

作用

建造者模式是将一个复杂对象和他的构造和组装过程分离,这样再重复创建不同对象时使用相同的流程进行建造。对于调用者来说,只需要知道产品的类型,而不需要知道具体的组装过程。

类视图

代码实现

class Builder { public: virtual void SelectCpu()= 0; virtual void SelectMatherboard() = 0; virtual void SelectMem() = 0; virtual void SelectDisk() = 0; virtual void SelectPower() = 0; virtual void SelectShell() = 0; }; //构造PC class PCBuilder : public Builder { public: void SelectCpu() { cout<<"Select PC Cpu"<<endl; } void SelectMatherboard() { cout<<"Select PC Matherboard"<<endl; } void SelectMem() { cout<<"Select PC Mem"<<endl; } void SelectDisk() { cout<<"Select PC Disk"<<endl; } void SelectPower() { cout<<"Select PC Power"<<endl; } void SelectShell() { cout<<"Select PC Shell"<<endl; } }; //构造Notebook class NoteBookBuilder : public Builder { public: void SelectCpu() { cout<<"Select NoteBook Cpu"<<endl; } void SelectMatherboard() { cout<<"Select NoteBook Matherboard"<<endl; } void SelectMem() { cout<<"Select NoteBook Mem"<<endl; } void SelectDisk() { cout<<"Select NoteBook Disk"<<endl; } void SelectPower() { cout<<"Select NoteBook Power"<<endl; } void SelectShell() { cout<<"Select NoteBook Shell"<<endl; } }; //构造的指挥官 class Director { private: Builder *m_pBuilder; public: Director(Builder *builder) { m_pBuilder = builder; } void Create(){ m_pBuilder->SelectCpu(); m_pBuilder->SelectMatherboard(); m_pBuilder->SelectMem(); m_pBuilder->SelectDisk(); m_pBuilder->SelectPower(); m_pBuilder->SelectShell(); } }; //调用 int main() { NoteBookBuilder thin; Director director(&thin); director.Create(); return 0; }

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持自由互联。

建造者模式(Builder)在C语言中的应用有哪些特点?