当前位置:网站首页 > 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教程2025-03-26 17:18:06
  • java 架构师教程2025-03-26 17:18:06
  • java指令教程大全2025-03-26 17:18:06
  • java背包安装教程2025-03-26 17:18:06
  • java支付接口教程2025-03-26 17:18:06
  • java537教程2025-03-26 17:18:06
  • java在线教程原型2025-03-26 17:18:06
  • java构建教程2025-03-26 17:18:06
  • 北大青鸟java教程2025-03-26 17:18:06
  • java猜数字教程2025-03-26 17:18:06