#include <iostream>
using namespace std;
// Build the product desktop
class Desktop
{
public:
string monitor;
string keyboard;
string cpu;
string mouse;
void setmonitor(string pmonitor)
{
monitor = pmonitor;
}
void setkeyboard(string pkeyboard)
{
keyboard = pkeyboard;
}
void setcpu(string pcpu)
{
cpu = pcpu;
}
void setmouse(string pmouse)
{
mouse = pmouse;
}
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.setmonitor("Dell Monitor");
}
void buildkeyboard()
{
pDesktop.setkeyboard("Dell keyboard");
}
void buildcpu()
{
pDesktop.setcpu("Dell CPU");
}
void buildmouse()
{
pDesktop.setmouse("Dell Mouse");
}
};
class HpDesktopBuilder : public DesktopBuilder
{
public:
void buildmonitor()
{
pDesktop.setmonitor("Hp Monitor");
}
void buildkeyboard()
{
pDesktop.setkeyboard("Hp keyboard");
}
void buildcpu()
{
pDesktop.setcpu("Hp CPU");
}
void buildmouse()
{
pDesktop.setmouse("Hp Mouse");
}
};
class Director
{
DesktopBuilder pdesktopbuilder;
public:
Director(DesktopBuilder desktopbuilder)
{
pdesktopbuilder = desktopbuilder;
}
Desktop getbuilder()
{
pdesktopbuilder.buildmonitor();
pdesktopbuilder.buildkeyboard();
pdesktopbuilder.buildcpu();
pdesktopbuilder.buildmouse();
return pdesktopbuilder.getdesktop();
}
};
int main() {
HpDesktopBuilder hpbuilder = new HpDesktopBuilder();
Director director1 = new Director(hpbuilder);
Desktop hpdesk = director1.getbuilder();
//DellDesktopBuilder dellbuilder ;
//Desktop dell = director.getbuilder(dellbuilder);
hpdesk.display();
//dell.display();
return 0;
}
To embed this project on your website, copy the following code and paste it into your website's HTML: