static void Main(string[] args) { //Espresso input example Beverage coffee = new EspressoMachine().AddWater(25).AddBeans(BeanTypes.BeanEnum.Robusta.ToString(), 27).ToBeverage(); Console.WriteLine("Got a " + coffee.CupType.ToLower() + " cup of " + coffee.ToString()?.ToLower()); //Latte input example Beverage coffee2 = new EspressoMachine().AddMilk(25).AddBeans(BeanTypes.BeanEnum.KopiLuwak.ToString(), 23).ToBeverage(); //Beverage coffee2 = new EspressoMachine().AddMilk(25).AddBeans(b => b.Name = BeanTypes.BeanEnum.KopiLuwak && b.Amount = 25).ToBeverage(); Console.WriteLine("Got a " + coffee2.CupType.ToLower() + " cup of " + coffee2.ToString()?.ToLower()); //Custom input example Beverage coffee3 = new EspressoMachine().AddMilk(25).ToBeverage(); Console.WriteLine("Got a " + coffee3.CupType.ToLower() + " cup of " + coffee3.ToString()?.ToLower()); /* pseudo-code * Espresso espresso = new EspressoMachine().AddWater(20).AddBeans(b => b.AmountInG = 5 && b.Sort = CoffeeSorts.Robusta).ToBeverage(); * //espresso is type of Espresso * * Latte latte = new EspressoMachine().AddWater(20).AddBeans(b => b.AmountInG = 7 && b.Sort = CoffeeSorts.Robusta).AddMilk().ToBeverage(); * //latte is type of Latte */ }
static void Main(string[] args) { /* pseudo-code * Espresso espresso = new Espresso().AddWater(20).AddBeans(b => b.AmountInG = 5 && b.Sort = CoffeSorts.Robusta).ToBravage(); * //espresso is type of Espresso * * Latte latte = new Espresso().AddWater(20).AddBeans(b => b.AmountInG = 7 && b.Sort = CoffeSorts.Robusta).AddMilk().ToBravage(); * //latte is type of Latte */ var beverage = new EspressoMachine().AddWater(25).AddBeans(CoffeSorts.Robusta).ToBeverage(); }
static void Main(string[] args) { Beverage espresso = new EspressoMachine().AddBeans(new Beans { Amount = 7, Sort = CoffeSorts.Robusta }) .AddWater(20) .HeatWater(92) .Validate(e => e.Temperature >= 92 && e.Ingredients.All(a => a.Amount > 0)) .ToBeverage(); Beverage latte = new EspressoMachine().AddBeans(new Beans { Amount = 12, Sort = CoffeSorts.Arabica }) .AddWater(20) .AddMilk(20) .ToBeverage(); }