Run Code
|
API
|
Code Wall
|
Misc
|
Feedback
|
Login
|
Theme
|
Privacy
|
Patreon
4341
//Rextester.Program.Main is the entry point for your code. Don't change it. //Microsoft (R) Visual C# Compiler version 2.9.0.63208 (958f2354) using System; using System.Collections.Generic; using System.Linq; using System.Text.RegularExpressions; namespace Rextester { abstract public class Beverage { string description = "NULL"; abstract public string getDescription(); abstract public double cost(); } abstract public class Decorator : Beverage { protected Beverage beverage; } public class Espresso : Beverage { string description = "Espresso"; public override string getDescription() { return description; } public override double cost() { return 1.05; } } public class Milk : Decorator { public Milk(Beverage beverage) { this.beverage = beverage; } public override string getDescription() { return beverage.getDescription() + ", Milk"; } public override double cost() { return beverage.cost() + 0.33; } } public class DarkRoast : Beverage { string description = "DarkRoast"; public override string getDescription() { return description; } public override double cost() { return 3.15; } } public class HouseBlend : Beverage { string description = "HouseBlend"; public override string getDescription() { return description; } public override double cost() { return 2.25; } } public class Mocha : Decorator { public Mocha(Beverage beverage) { this.beverage = beverage; } public override string getDescription() { return beverage.getDescription() + ", Mocha"; } public override double cost() { return beverage.cost() + 0.25; } } public class Soy: Decorator { public Soy(Beverage beverage) { this.beverage = beverage; } public override string getDescription() { return beverage.getDescription() + ", Soy"; } public override double cost() { return beverage.cost() + 0.65; } } public class Cream : Decorator { public Cream(Beverage beverage) { this.beverage = beverage; } public override string getDescription() { return beverage.getDescription() + ", Cream"; } public override double cost() { return beverage.cost() + 1.4; } } public class Chocolad: Decorator { public Chocolad(Beverage beverage) { this.beverage = beverage; } public override string getDescription() { return beverage.getDescription() + ", Chocolad"; } public override double cost() { return beverage.cost() + 2; } } public class Program { public static void Main(string[] args) { Beverage beverage = new Espresso(); Console.WriteLine(beverage.getDescription() + " " + beverage.cost() + " $"); Beverage beverage2 = new Espresso(); beverage2 = new Milk(beverage2); beverage2 = new Cream(beverage2); beverage2 = new Cream(beverage2); Console.WriteLine(beverage2.getDescription() + " " + beverage2.cost() + " $"); Beverage beverage3 = new DarkRoast(); beverage3 = new Chocolad(beverage3); beverage3 = new Cream(beverage3); Console.WriteLine(beverage3.getDescription() + " " + beverage3.cost() + " $"); Beverage beverage4 = new HouseBlend(); beverage4 = new Milk(beverage4); beverage4 = new Mocha(beverage4); beverage4 = new Soy(beverage4); beverage4 = new Cream(beverage4); beverage4 = new Chocolad(beverage4); Console.WriteLine(beverage4.getDescription() + " " + beverage4.cost() + " $"); } } }
run
|
edit
|
history
|
help
0
Roman to Arabic number conversion without semantic control
D12
tamrin
DateTime and TimeSpan comparisons
pattern
Find the count of subsets with given difference
Prsonal informashin
operator
Uri builder
Found many section of times intersect (Question version)