#include <iostream>
using namespace std;
// Build the product desktop
class Desktop
{
public:
string monitor;
string keyboard;
string cpu;
string mouse;
void display()
{
cout<<"Monitor is : "<<monitor<<endl;
cout<<"Keyboard is : "<<keyboard<<endl;
cout<<"CPU is : "<<cpu<<endl;
cout<<"Mouse is : "<<mouse<<endl;
}
};
class DesktopBuilder
{
protected:
Desktop pDesktop;
public:
virtual void buildmonitor() = 0 ;
virtual void buildkeyboard() = 0;
virtual void buildcpu() = 0;
virtual void buildmouse() = 0;
Desktop getdesktop()
{
return pDesktop;
}
};
class DellDesktopBuilder : public DesktopBuilder
{
public:
void buildmonitor()
{
pDesktop.monitor = "Dell Monitor";
}
void buildkeyboard()
{
pDesktop.keyboard = "Dell keyboard ";
}
void buildcpu()
{
pDesktop.cpu= "Dell CPU";
}
void buildmouse()
{
pDesktop.mouse = "Dell Mouse";
}
};
class HpDesktopBuilder : public DesktopBuilder
{
public:
void buildmonitor()
{
pDesktop.monitor = "Hp Monitor";
}
void buildkeyboard()
{
pDesktop.keyboard = "Hp keyboard ";
}
void buildcpu()
{
pDesktop.cpu= "Hp CPU";
}
void buildmouse()
{
pDesktop.mouse = "Hp Mouse";
}
};
class Director
{
public:
Desktop getbuilder(DesktopBuilder &pdeskbuild)
{
pdeskbuild.buildmonitor();
pdeskbuild.buildkeyboard();
pdeskbuild.buildcpu();
pdeskbuild.buildmouse();
return pdeskbuild.getdesktop();
}
};
int main() {
Director director;
HpDesktopBuilder hpbuilder;
Desktop hp = director.getbuilder(hpbuilder);
DellDesktopBuilder dellbuilder ;
Desktop dell = director.getbuilder(dellbuilder);
hp.display();
dell.display();
return 0;
}
To embed this project on your website, copy the following code and paste it into your website's HTML: