static void Main(string[] args) { #region demo 1 Beverage beverage = new Espresso(); //不要调料 Console.WriteLine(beverage.getDescription() + " $ " + beverage.cost()); // Beverage beverage2 = new Espresso(); beverage2 = new Mocha(beverage2); Console.WriteLine(beverage2.getDescription() + " $ " + beverage2.cost()); #endregion ; // 我买了个苹果手机 Phone phone = new ApplePhone(); // 现在想贴膜了 Decorator applePhoneWithSticker = new Sticker(phone); // 扩展贴膜行为 applePhoneWithSticker.Print(); Console.WriteLine("----------------------\n"); // 现在我想有挂件了 Decorator applePhoneWithAccessories = new Accessories(phone); // 扩展手机挂件行为 applePhoneWithAccessories.Print(); Console.WriteLine("----------------------\n"); // 现在我同时有贴膜和手机挂件了 Sticker sticker = new Sticker(phone); Accessories applePhoneWithAccessoriesAndSticker = new Accessories(sticker); applePhoneWithAccessoriesAndSticker.Print(); Console.ReadLine(); }
static void Main(string[] args) { Beverage beverage = new HouseBlend(); Console.WriteLine(beverage.GetDescription() + ",$" + beverage.Cost()); Beverage beverage1 = new DarkRoast(); beverage1 = new Milk(beverage1); beverage1 = new Mocha(beverage1); Console.WriteLine(beverage1.GetDescription() + ",$" + beverage1.Cost()); Beverage beverage2 = new HouseBlend(); beverage2 = new Milk(beverage2); beverage2 = new Milk(beverage2); Console.WriteLine(beverage2.GetDescription() + ",$" + beverage2.Cost()); }