110,536
社区成员
发帖
与我相关
我的任务
分享
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace DecoratorPattern
{
public abstract class Beverage
{
private String _description;
public String Description
{
set { _description = value; }
get { return _description; }
}
public abstract Single Cost();
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace DecoratorPattern
{
public abstract class CondimentDecorate : Beverage
{
public override Single Cost()
{
return 0.0f;
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace DecoratorPattern
{
public class DarkRoast : Beverage
{
public DarkRoast()
{
Description = "Dark Roast Coffee";
}
public override Single Cost()
{
return 0.99f;
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace DecoratorPattern
{
public class Decaf : Beverage
{
public Decaf()
{
Description = "Decaf";
}
public override Single Cost()
{
return 1.05f;
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace DecoratorPattern
{
public class Espresso : Beverage
{
public Espresso()
{
Description = "Espresso";
}
public override Single Cost()
{
return 1.99f;
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace DecoratorPattern
{
public class HouseBlend : Beverage
{
public HouseBlend()
{
Description = "House Blend Coffee";
}
public override Single Cost()
{
return 0.89f;
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace DecoratorPattern
{
public class Milk : CondimentDecorate
{
private Beverage _beverage;
public Milk(Beverage beverage)
{
_beverage = beverage;
_beverage.Description = _beverage.Description + ", Milk";
}
public override Single Cost()
{
return _beverage.Cost() + 0.10f;
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace DecoratorPattern
{
public class Mocha : CondimentDecorate
{
private Beverage _beverage;
public Mocha(Beverage beverage)
{
_beverage = beverage;
_beverage.Description = _beverage.Description + ", Mocha";
}
public override Single Cost()
{
return _beverage.Cost() + 0.2f;
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace DecoratorPattern
{
public class Soy : CondimentDecorate
{
private Beverage _beverage;
public Soy(Beverage beverage)
{
_beverage = beverage;
_beverage.Description = _beverage.Description + ", Soy";
}
public override Single Cost()
{
return _beverage.Cost() + 0.15f;
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace DecoratorPattern
{
class Program
{
static void Main(string[] args)
{
Beverage beverage1 = new HouseBlend();
Console.WriteLine(beverage1.Description + "$" + beverage1.Cost());
Beverage beverage2 = new Espresso();
beverage2 = new Soy(beverage2);
beverage2 = new Mocha(beverage2);
beverage2 = new Milk(beverage2);
Console.WriteLine(beverage2.Description + "$" + beverage2.Cost());
Beverage beverage3 = new DarkRoast();
beverage3 = new Milk(beverage3);
Console.WriteLine(beverage3.Description + "$" + beverage3.Cost());
beverage3 = new Milk(beverage3);
Console.WriteLine(beverage3.Description + "$" + beverage3.Cost());
beverage3 = new Milk(beverage3);
Console.WriteLine(beverage3.Description + "$" + beverage3.Cost());
Console.ReadKey();
}
}
}