设计模式---生成器(C++版) 希望大家顶一下

// 抽象类部分
class  House
{
    
}

class  Door
{
    
}

class  Wall
{
    
}

class  Window
{
    
}

class  Floor
{
    
}

class  HouseCeiling
{
    
}

class  Builder
{
    
virtual Door* BuildDoor();
    
virtual Wall* BuildWall();
    
virtual Window* BuildWindow();
    
virtual Floor* BuildFloor();
    
virtual HouseCeiling* BuildHouseCeiling();
    
virtual House* GetHouse();
}

// 较为稳定的部分
class  GameManager
{
public:
    House
* CreateHouse(Builder* builder)
       
{
          builder
->BuilderDoor();
          builder
->BuilderDoor();
          builder
->BuilderWall();
          builder
->BuilderWall();
          builder
->BuilderWall();
          builder
->BuilderWall();
          builder
->BuilderWindow();
          builder
->BuilderWindow();
          builder
->BuilderFloor();
          builder
->BuilderHouseCeiling();
          
return builder->GetHouse();
        }


}

// 具体类部分
class  RomanHouse: public  House
{
    
}

class  RomanDoor: public  Door
{
    
}

class  RomanWall: public  Wall
{
    
}

class  RomanWindow: public  Window
{
    
}

class  RomanFloor: public  Floor
{
    
}

class  RomanHouseCeiling: public  HouseCeiling
{
    
}

class  RomanHouseBuilder :  public  Builder
{
         Door
* BuildDoor()
         
{}
         Wall
* BuildWall()
         
{}
         Window
* BuildWindow()
         
{}
         Floor
* BuildFloor()
         
{}
         HouseCeiling
* BuildHouseCeiling()
         
{}
         House
* GetHouse()
         
{}
}

// main函数部分
int  main()
{
    GameManager gamemanagetr;
    RomanHouse
* pRomanHouse = new RomanHouse(); 
    gamemanagetr.CreateHouse(pRomanHouse);
    
return 0;
    
}
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值