当前位置:网站首页 > Java基础 > 正文

builder java使用教程



C++ 方式:

#include <string> #include <vector> #include <iostream>

using namespace std;

class Packing {

public: virtual string pack() { return ""; }; 

};

class Item {

public: virtual string name() { return ""; }; virtual Packing *packing() { return new Packing(); }; virtual float price() { return 0; }; 

};

class Wrapper: public Packing {

public: string pack() { return "Wrapper"; } 

};

class Bottle: public Packing {

public: string pack() { return "Bottle"; } 

};

class Burger: public Item {

public: Packing *packing() { return new Wrapper(); } 

};

class ColdDrink: public Item {

public: Packing *packing() { return new Bottle(); } 

};

class VegBurger: public Burger {

public: float price() { return 25.0f; } string name() { return "Veg Burger"; } 

};

class ChickenBurger: public Burger {

public: float price() { return 50.5f; } string name() { return "Chicken Burger"; } 

};

class Coke: public ColdDrink { public:

 float price() { return 30.0f; } string name() { return "Coke"; } 

};

class Pepsi: public ColdDrink { public:

 float price() { return 35.0f; } string name() { return "Pepsi"; } 

};

class Meal {

private: vector<Item *> items; public: void addItem(Item *item) { items.push_back(item); } float getCost() { float cost = 0.0f; for (Item *item : items) { cost += item -> price(); } return cost; } void showItems() { for (Item *item : items) { cout << "Item : " << item -> name() << ", Packing : " << item -> packing() -> pack() << ", Price : "; printf("%.1f 

”, item -> price());

 } } 

};

class MealBuilder {

public: Meal *prepareVegMeal() { Meal *meal = new Meal(); meal -> addItem(new VegBurger()); meal -> addItem(new Coke()); return meal; } Meal *prepareNonVegMeal () { Meal *meal = new Meal(); meal -> addItem(new ChickenBurger()); meal -> addItem(new Pepsi()); return meal; } 

};

int main() {

MealBuilder mealBuilder; Meal *vegMeal = mealBuilder.prepareVegMeal(); cout << "Veg Meal" << endl; vegMeal -> showItems(); cout << "Total Cost: " << vegMeal -> getCost() << endl; delete(vegMeal); Meal *nonVegMeal = mealBuilder.prepareNonVegMeal(); cout << " 

Non-Veg Meal” << endl;

nonVegMeal -> showItems(); cout << "Total Cost: " << nonVegMeal -> getCost() << endl; delete(nonVegMeal); 

}

  • 上一篇: java578教程
  • 下一篇: java537教程
  • 版权声明


    相关文章:

  • java578教程2026-02-18 15:26:02
  • java 架构师教程2026-02-18 15:26:02
  • java指令教程大全2026-02-18 15:26:02
  • java背包安装教程2026-02-18 15:26:02
  • java支付接口教程2026-02-18 15:26:02
  • java537教程2026-02-18 15:26:02
  • java在线教程原型2026-02-18 15:26:02
  • java构建教程2026-02-18 15:26:02
  • 北大青鸟java教程2026-02-18 15:26:02
  • java猜数字教程2026-02-18 15:26:02