每日博客

建造者模式

本次实验属于模仿型实验,通过本次实验学生将掌握以下内容:

1、理解建造者模式的动机,掌握该模式的结构;

2、能够利用建造者模式解决实际问题。

 

 

[实验任务一]:计算机组装

使用建造者模式,完成下述任务:计算机组装工厂可以将CPU、内存、硬盘、主机等硬件设备组装在一起构成计算机,计算机的类型可以是笔记本,也可以是台式机。

C++版

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

class Computer
{
public:
void Select(string componentName){this->m_ComponentsList.push_back(componentName);}
void ShowComponets()
{
list<string>::iterator iter;
for(iter=this->m_ComponentsList.begin();iter!=this->m_ComponentsList.end();iter++)
{cout<<*iter<<endl;}
}
private:list<string>m_ComponentsList;
};
class Abstract_Builder
{
public:
virtual void BuildCpu()=0;
virtual void BuildMemory()=0;
virtual void BuildVideoCard()=0;
virtual Computer GetComputer()=0;
};
class ComputerBuilder:public Abstract_Builder
{
public:
void BuildCpu(){this->m_Computer.Select("I7 8700");}
void BuildMemory(){this->m_Computer.Select("16G 内存");}
void BuildVideoCard(){this->m_Computer.Select("gtx 1080 ti");}
Computer GetComputer(){return this->m_Computer;}
private:Computer m_Computer;
};
class Assember
{
public:
void Assembly(Abstract_Builder*builder)
{
builder->BuildCpu();
builder->BuildMemory();
builder->BuildVideoCard();
}
};
main()
{
Assember pcAssember;
Abstract_Builder*p=new ComputerBuilder();
if(NULL!=p)
{
pcAssember.Assembly(p);
Computer c=p->GetComputer();
c.ShowComponets();
delete p;
p=NULL;
}
}

posted @ 2021-11-11 21:01  谦寻  阅读(97)  评论(0编辑  收藏  举报