设计模式-Builder模式戏说
不同于Factory类继承的方式,与AbstractFactory接口继承方式相同,但是对象属性类并没有通过继承实现。
///////////////////////////////////////////////////////////////
class 导弹
{
public:
vitrual ~导弹();
导弹();
地对空导弹();
反导防御();
}
/////////////////////////////////////////////////////////////
class 车轱辘
{
public:
vitrual ~车轱辘();
车轱辘();
韩国车轱辘();
东风车轱辘();
}
/////////////////////////////////////////////////////////////////
class 轮胎
{
public:
vitrual ~轮胎();
轮胎();
米琪琳();
吉利();
}
//////////////////////////////////////////////////////////////////
class 汽车
{
public:
vitrual ~汽车();
汽车();
组装车辆();
};
汽车::组装车辆(车辆样式& _车辆样式)
{
_车辆样式.导弹样式();
_车辆样式.车轱辘样式();
_车辆样式.轮胎样式();
return _车辆样式.最终样式();
}
/////////////////////////////////////////////////
class 车辆样式
{
public:
车辆样式();
~车辆样式();
virtual 导弹样式();
virtual 车轱辘样式();
virtual 轮胎样式();
virtual 汽车* 最终样式();
}
///////////////////////////////////////////////////
class 我的车 : public 车辆样式
{
public:
我的车();
~我的车();
virtual 导弹样式(){导弹.地对空导弹();}
virtual 车轱辘样式(){车轱辘.东风车轱辘();}
virtual 轮胎样式(){轮胎.吉利();}
virtual 汽车* 最终样式();
}
class 老婆的车 : public 车辆样式
{
public:
老婆的车();
~老婆的车();
virtual 导弹样式(){导弹.反导防御();}
virtual 车轱辘样式(){车轱辘.韩国车轱辘();}
virtual 轮胎样式(){轮胎.米琪琳();}
virtual 汽车* 最终样式();
}
class 童车 : public 车辆样式
{
public:
童车();
~童车();
virtual 导弹样式(){导弹.反导防御();}
virtual 车轱辘样式(){车轱辘.东风车轱辘();}
virtual 轮胎样式(){轮胎.吉利();}
virtual 汽车* 最终样式();
}
=======================================================================
int main()
{
汽车* 男式车;
我的车 男式样式;
男式车.组装车辆(男式样式);
汽车* 女式车;
老婆的车 女式样式;
女式车.组装车辆(女式样式);
汽车* 小型车;
童车 小型样式;
小型车.组装车辆(小型样式);
}