现在的位置: 首页 > 综合 > 正文

设计模式-Builder模式戏说

2013年09月08日 ⁄ 综合 ⁄ 共 1516字 ⁄ 字号 评论关闭

设计模式-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()
{
  汽车* 男式车;
  我的车 男式样式;

  男式车.组装车辆(男式样式);

  汽车* 女式车;
  老婆的车 女式样式;

  女式车.组装车辆(女式样式);

  汽车* 小型车;
  童车 小型样式;

  小型车.组装车辆(小型样式);
}

【上篇】
【下篇】

抱歉!评论已关闭.