static void Main(string[] args) { Console.WriteLine("选择工厂模式"); var type = Console.ReadLine(); switch (type) { case "1": //工厂模式 var sharpFactory = new SharpeFactory(); Sharp sharp = sharpFactory.GetSharpe("R"); sharp.Draw(); Console.ReadLine(); break; case "2": //抽象工厂模式 AbstractFactory abstractFactory = FactoryProducer.GetFactory("1212"); IColor color = abstractFactory.GetColor("B"); color.Fill(); Console.ReadLine(); break; case "3": //建造者模式 MealBuilder mealBuilder = new MealBuilder(); Meal vgMeal = mealBuilder.PrepareVegMeal(); Console.WriteLine("Veg meal"); vgMeal.ShowItems(); Console.WriteLine($"Total Cost:{vgMeal.GetCost()}"); Meal nonVegMeal = mealBuilder.PrepareNonVegMeal(); Console.WriteLine("NonVeg Meal"); nonVegMeal.ShowItems(); Console.WriteLine($"Total Cost:{nonVegMeal.GetCost()}"); break; } }
public void Build() { using (var context = new DinnerManagerContext("DinnerManager")) { // clear database foreach (var m in context.Meals) { context.Meals.Remove(m); } foreach (var d in context.Dishes) { context.Dishes.Remove(d); } var spaghetti = new DishBuilder().WithDescription("Annick's befaamde spaghetti") .WithName("Spaghetti bolognaise") .WithRating(5) .Build(); context.Dishes.Add(spaghetti); var visVidee = new DishBuilder().WithName("Vis videe") .Build(); context.Dishes.Add(visVidee); var vispannetje = new DishBuilder().WithName("Vispannetje") .Build(); context.Dishes.Add(vispannetje); var couscous = new DishBuilder().WithName("Couscous met scampi's") .Build(); context.Dishes.Add(couscous); var today = new MealBuilder().WithDate(DateTime.Now) .WithDish(visVidee) .Build(); context.Meals.Add(today); var tomorrow = new MealBuilder().WithDate(DateTime.Now.AddDays(1)) .WithDish(spaghetti) .Build(); context.Meals.Add(tomorrow); var dayAfterTomorrow = new MealBuilder().WithDate(DateTime.Now.AddDays(2)) .WithDish(vispannetje) .Build(); context.Meals.Add(dayAfterTomorrow); var sameDayNextWeek = new MealBuilder().WithDate(DateTime.Now.AddDays(7)) .WithDish(couscous) .Build(); context.Meals.Add(sameDayNextWeek); var nextWeek = new MealBuilder().WithDate(DateTime.Now.AddDays(10)) .Build(); context.Meals.Add(nextWeek); context.SaveChanges(); } }
public void MakeMeal(MealBuilder builder) { builder.AddSandwich(); builder.AddSideOrder(); builder.AddDrink(); builder.AddOfferItem(); builder.SetPrice(); }
public void Main() { MealBuilder mealBuilder = new MealBuilder(); var vegMeal = mealBuilder.PrepareVegMeal(); Console.WriteLine("Veg Meal:"); vegMeal.ShowItems(); Console.WriteLine("Total Cost: " + vegMeal.GetCost()); }
static void Main(string[] args) { #region Builder Pattern Console.WriteLine("-------Builder Pattern--------"); MealBuilder mb = new MealBuilder(); Meal Vegan = mb.PrepareVegMeal(); Console.WriteLine("Preparing...Vegan"); Vegan.ShowItems(); Console.WriteLine("Cost:{0}", Vegan.GetCost()); MealBuilder mbu = new MealBuilder(); Meal HardCode = mb.PrepareNonVegMeal(); Console.WriteLine("Preparing...Hard"); Vegan.ShowItems(); Console.WriteLine("Cost:{0}", HardCode.GetCost()); #endregion Console.WriteLine("---------------------------"); Console.WriteLine("-------ProtoType Pattern---------"); ShapeCache.LoadCache(); ProtoProj.Shape clonedShape = (ProtoProj.Shape)ShapeCache.GetShape("1"); Console.WriteLine("Shape: {0}", clonedShape.GetType()); ProtoProj.Shape clonedShape1 = (ProtoProj.Shape)ShapeCache.GetShape("2"); Console.WriteLine("Shape: {0}", clonedShape1.GetType()); ProtoProj.Shape clonedShape2 = (ProtoProj.Shape)ShapeCache.GetShape("3"); Console.WriteLine("Shape: {0}", clonedShape2.GetType()); Console.WriteLine("-------Adapter Pattern------"); AudioPlayer ap = new AudioPlayer(); ap.Play("mp4", "alone.mp4"); ap.Play("mp3", "more_than_words.mp3"); ap.Play("vlx", "beyond_horizon.vlc"); Console.WriteLine("-----Bridge Pattern------"); BridgeProj.Shape red = new BridgeProj.Circle(new RedCircle(), 100, 100, 100); BridgeProj.Shape green = new BridgeProj.Circle(new GreenCircle(), 100, 100, 100); red.Draw(); green.Draw(); Console.WriteLine("---------------------------"); Console.ReadKey(); }
public void Start() { var mealBuilder = new MealBuilder(); var vegMeal = mealBuilder.PrepareVegMeal(); logger.Info($"Veg Meal: "); vegMeal.ShowItems(); var nonVegMeal = mealBuilder.PrepareNonVegMeal(); logger.Info($"Non Veg Meal: "); nonVegMeal.ShowItems(); }
static void Main(string[] args) { MealBuilder vegMealBuilder = new MealBuilder(); Meal vegMeal = vegMealBuilder.PrepareVegMeal(); vegMeal.ShowMealItems(); Console.WriteLine($"\nTotal Price : Rs.{vegMeal.GetFinalCost()}/-"); Meal nonVegMeal = vegMealBuilder.PrepareNonVegMeal(); nonVegMeal.ShowMealItems(); Console.WriteLine($"\nTotal Price : Rs.{nonVegMeal.GetFinalCost()}/-"); Console.ReadLine(); }
static void TestFoods() { MealBuilder mealBuilder = new MealBuilder(); Meal vegMeal = mealBuilder.PrepareVegMeal(); vegMeal.ShowItems(); Debug.WriteLine($"total price: {vegMeal.CalculateCost()}"); Meal nonVegMeal = mealBuilder.PrepareNonVegMeal(); nonVegMeal.ShowItems(); Debug.WriteLine($"total price: {nonVegMeal.CalculateCost()}"); }
public double BuildMealForUser(List <FoodMenuModel> selectedMealItems) { Console.WriteLine(); Console.WriteLine("You Selected Below Meal Items"); Console.WriteLine("_______________________________"); MealBuilder mealBuilder = new MealBuilder(); mealBuilder.PrepareMeal(selectedMealItems); mealBuilder.meal.ShowItems(); var totalCost = mealBuilder.meal.GetCost(); Console.WriteLine("Total Cost(Rs.): {0}", totalCost); return(totalCost); }
static void Main(string[] args) { MealBuilder mealBuilder = new MealBuilder(); Meal vegMeal = mealBuilder.PrepareVegMeal(); Console.WriteLine("Vegetable Meal -> "); vegMeal.ShowItems(); Console.WriteLine("Total Cost: " + vegMeal.GetCost()); Meal nonVegMeal = mealBuilder.PrepareNonVegMeal(); Console.WriteLine("Non-Vegetable Meal -> "); nonVegMeal.ShowItems(); Console.WriteLine("Total Cost: " + nonVegMeal.GetCost()); }
public void Builder_Pattern_Test() { var builder = new MealBuilder(); var vegMeal = builder.PrepareVegMeal(); var vegItems = vegMeal.GetItems(); Assert.IsInstanceOfType(vegItems[0], typeof(VegBurger)); Assert.IsInstanceOfType(vegItems[1], typeof(Coke)); var chickenMeal = builder.PrepareNonVegMeal(); var chickenItems = chickenMeal.GetItems(); Assert.IsInstanceOfType(chickenItems[0], typeof(ChickenBurger)); Assert.IsInstanceOfType(chickenItems[1], typeof(Pepsi)); }
public void DemoBuilderPattern() { Console.WriteLine("-----------------Builder Pattern Example-----------------"); MealBuilder mealBuilder = new MealBuilder(); Meal vegMeal = mealBuilder.PrepareVegMeal(); Console.WriteLine("Veg Meal"); vegMeal.showItems(); Console.WriteLine("Total Cost: {0}", vegMeal.getCost()); Console.WriteLine(""); Meal nonVegMeal = mealBuilder.NonprepareVegMeal(); Console.WriteLine("Non-Veg Meal"); nonVegMeal.showItems(); Console.WriteLine("Total Cost: {0}", nonVegMeal.getCost()); }
public static void Start() { MealBuilder mealBuilder = new MealBuilder(); Meal vegMeal = mealBuilder.PrepareVegMeal(); Console.WriteLine("Veg Meal"); vegMeal.ShowItems(); Console.WriteLine($"Total Cost: {vegMeal.GetCost()}"); Meal nonVegMeal = mealBuilder.PrepareNonVegMeal(); Console.WriteLine("\n\nNon-Veg Meal"); nonVegMeal.ShowItems(); Console.WriteLine($"Total Cost: {nonVegMeal.GetCost()}"); }
private void btBuilderPattern_Click(object sender, EventArgs e) { string str = ""; MealBuilder mealBuilder = new MealBuilder(); Meal vegMeal = mealBuilder.prepareVegMeal(); str += "Veg Meal\r\n"; str += vegMeal.showItems(); str += "Total Cost: " + vegMeal.getCost() + "\r\n"; Meal nonVegMeal = mealBuilder.prepareNonVegMeal(); str += "\n\nNon-Veg Meal\r\n"; str += nonVegMeal.showItems(); str += "Total Cost: " + nonVegMeal.getCost() + "\r\n"; tbOutWindow.Text = str; }
/// <summary> /// This driver called that module which followed Builder Design Pattern /// </summary> /// <param name="selectedMealItems"></param> /// <returns></returns> public double BuildMealForUser(List <FoodMenuModel> selectedMealItems) { Console.WriteLine(); Console.WriteLine("You Selected Below Meal Items"); Console.WriteLine("_______________________________"); MealBuilder mealBuilder = new MealBuilder(); mealBuilder.PrepareMeal(selectedMealItems); mealBuilder.meal.ShowItems(); var foodCost = mealBuilder.meal.GetCost(); //Calculation of Tax var taxCalculationContext = new TaxCalculationContext(new OneStarTaxCalculator()); var taxAmount = taxCalculationContext.GetCalculatedTax(foodCost, 0.05, false); var totalCostofFood = foodCost + taxAmount; Console.WriteLine("Total Cost(Rs.): {0}", totalCostofFood); Console.WriteLine("Total Tax(Rs.): {0}", taxAmount); return(totalCostofFood); }
public double BuildMealForUser(List <FoodMenuModel> selectedMealItems) { Console.WriteLine("______________________________"); Console.WriteLine("You selected those items:"); Console.WriteLine("______________________________"); MealBuilder mealBuilder = new MealBuilder(); mealBuilder.PrepareMeal(selectedMealItems); mealBuilder.meal.ShowItems(); var foodCost = mealBuilder.meal.ComputePrice(); var delivery = new DeliveryTaxCalculator(); var taxCalculationContext = new DeliveryTaxCalculationContext(delivery); Console.WriteLine($"Delivery fee: {delivery.deliveryTax} dollars"); var taxAmount = taxCalculationContext.GetCalculatedTax(foodCost); Console.WriteLine($"Total cost: {taxAmount}"); return(taxAmount); }
static void Builder() { //the Meal Builder: MealBuilder mealBuilder = new MealBuilder(); Meal vegMeal = mealBuilder.prepareVegMeal(); Console.WriteLine("Veg Meal"); vegMeal.showItems(); Console.WriteLine("Total Cost: " + vegMeal.getCost()); Meal nonVegMeal = mealBuilder.prepareNonVegMeal(); Console.WriteLine("\n\nNon-Veg Meal"); nonVegMeal.showItems(); Console.WriteLine("Total Cost: " + nonVegMeal.getCost()); //the Computer Bulder Computer comp = new ComputerBuilder("500 GB", "2 GB").setBluetoothEnabled(true).setGraphicsCardEnabled(true).build(); }
public Meal CreateMeal(string name, Combination combination) { IMealBuilder builder = new MealBuilder(name); switch (combination) { case Combination.Pie: ConcreteMealBuilder pie = new ConcreteMealBuilder(); pie.Pie(builder); return(builder.BuildMeal()); case Combination.Kebab: ConcreteMealBuilder kebab = new ConcreteMealBuilder(); kebab.Kebab(builder); return(builder.BuildMeal()); case Combination.Barbeque: ConcreteMealBuilder barbeque = new ConcreteMealBuilder(); barbeque.Barbeque(builder); return(builder.BuildMeal()); } return(null); }
static void Main(string[] args) { Console.WriteLine("Singleton Pattern"); // Singleton Pattern SingleObject singleObject = SingleObject.Instance(); singleObject.ShowMessage(); Console.WriteLine("\nBuilder Pattern"); // Builder Pattern MealBuilder mealBuilder = new MealBuilder(); Meal vegMeal = mealBuilder.PrepareVegMeal(); Console.WriteLine("Veg Meal"); vegMeal.ShowItems(); Console.WriteLine("Total Cost : " + vegMeal.GetCost()); Meal nonVegMeal = mealBuilder.PrepareNonVegMeal(); Console.WriteLine("NonVeg Meal"); nonVegMeal.ShowItems(); Console.WriteLine("Total Cost : " + nonVegMeal.GetCost()); Console.WriteLine("\nAbstract Factory"); // Abstract Factory Pattern AbstractFactory shapeFactory = FactoryProducer.GetFactory("shape"); IShape circleShape = shapeFactory.GetShape("circle"); circleShape.Draw(); AbstractFactory colorFactory = FactoryProducer.GetFactory("color"); IColor blueColor = colorFactory.GetColor("blue"); blueColor.Fill(); Console.WriteLine("\nAdapter"); //Adapter Pattern AudioPlayer audioPlayer = new AudioPlayer(); audioPlayer.Play("mp4"); audioPlayer.Play("flac"); audioPlayer.Play("vlc"); Console.WriteLine("\nFacade"); //Facade Pattern ShapeMaker shapeMaker = new ShapeMaker(); shapeMaker.DrawCircle(); shapeMaker.DrawRectangle(); shapeMaker.DrawSquare(); Console.WriteLine("\nDecorator doesn't work"); //Decorator Pattern IDecoratorShape rectangle = new RectangleDecorator(); IDecoratorShape redRectangle = new RedShapeDecorator(new RectangleDecorator()); Console.WriteLine("Rectangle with no color"); rectangle.Draw(); Console.WriteLine("Rectangle with color"); redRectangle.Draw(); Console.WriteLine("\nComposite"); //Composite Pattern Employee DSI = new Employee("employee1", "DSI", 100000); Employee chefDeProjet1 = new Employee("employee2", "Chef de projet", 60000); Employee chefDeProjet2 = new Employee("employee3", "Chef de projet", 60000); Employee dev1 = new Employee("employee4", "Développeur", 40000); Employee dev2 = new Employee("employee5", "Développeur", 40000); DSI.Add(chefDeProjet1); DSI.Add(chefDeProjet2); chefDeProjet1.Add(dev1); chefDeProjet2.Add(dev2); Console.WriteLine(DSI.Details()); foreach (Employee e1 in DSI.GetSubordinates()) { Console.WriteLine(e1.Details()); foreach (Employee e2 in e1.GetSubordinates()) { Console.WriteLine(e2.Details()); } } Console.WriteLine("\nBridge"); //Bridge Pattern BridgeShape shape1 = new BridgeCircle(10, 10, 1, new GreenCircle()); BridgeShape shape2 = new BridgeCircle(100, 100, 10, new RedCircle()); shape1.Draw(); shape2.Draw(); Console.WriteLine("\nCommand"); //Command Pattern Stock stock1 = new Stock("laptop", 100); BuyStock buyStock = new BuyStock(stock1); Stock stock2 = new Stock("screen", 30); SellStock sellStock = new SellStock(stock2); Broker broker = new Broker(); broker.TakeOrder(buyStock); broker.TakeOrder(sellStock); broker.PlaceOrders(); Console.WriteLine("\nInterpreter"); //Interpreter Pattern IExpression isMale = InterpreterPatternDemo.GetMaleExpression(); IExpression isMarried = InterpreterPatternDemo.GetMarriedWomanExpression(); Console.WriteLine("John is male ? " + isMale.Interpret("john")); Console.WriteLine("Barbara is male ? " + isMale.Interpret("barbara")); Console.WriteLine("Julie is married ? " + isMarried.Interpret("julie married")); Console.WriteLine("Bob is married ? " + isMarried.Interpret("bob married")); }
public void Construct(MealBuilder builder) { builder.PrepareFoods(); builder.PrepareDrinks(); }
public void Construct(MealBuilder mealBuilder) { mealBuilder.GetFood(); mealBuilder.GetDesert(); mealBuilder.GetBeverage(); }