装饰模式
来源:互联网 发布:游泳馆收费软件 编辑:程序博客网 时间:2024/06/10 05:19
class Program
...{
static void Main(string[] args)
...{
Beverage beverage = new Espresso();
Console.WriteLine(beverage.getDesciption() + "$" + beverage.cost());
Beverage beverage2 = new Espresso();
Beverage beverage3 = new Mocha(beverage2);
Beverage beverage4 = new Mocha(beverage3);
beverage3 = new Mocha(beverage2);
beverage2 = new Mocha(beverage2);
Console.WriteLine(beverage4.getDesciption() + "$" + beverage4.cost());
}
}
public abstract class Beverage
...{
public string description = "Unknown Beverage";
public String getDesciption()
...{
return description;
}
public abstract double cost();
}
public abstract class CondimentDecorator:Beverage
...{
public abstract string getDescription();
}
public class Espresso : Beverage
...{
public Espresso()
...{
description = "Espresso";
}
public override double cost()
...{
return 1.99;
}
}
public class HouseBlend : Beverage
...{
public HouseBlend()
...{
description = "House Blend Coffee";
}
public override double cost()
...{
return 0.89;
}
}
public class Mocha : CondimentDecorator
...{
Beverage beverage;
public Mocha(Beverage beverage)
...{
this.beverage = beverage;
}
public override String getDescription()
...{
return beverage.getDesciption() + ",Mocha";
}
public override double cost()
...{
return 0.20 + beverage.cost();
}
}
...{
static void Main(string[] args)
...{
Beverage beverage = new Espresso();
Console.WriteLine(beverage.getDesciption() + "$" + beverage.cost());
Beverage beverage2 = new Espresso();
Beverage beverage3 = new Mocha(beverage2);
Beverage beverage4 = new Mocha(beverage3);
beverage3 = new Mocha(beverage2);
beverage2 = new Mocha(beverage2);
Console.WriteLine(beverage4.getDesciption() + "$" + beverage4.cost());
}
}
public abstract class Beverage
...{
public string description = "Unknown Beverage";
public String getDesciption()
...{
return description;
}
public abstract double cost();
}
public abstract class CondimentDecorator:Beverage
...{
public abstract string getDescription();
}
public class Espresso : Beverage
...{
public Espresso()
...{
description = "Espresso";
}
public override double cost()
...{
return 1.99;
}
}
public class HouseBlend : Beverage
...{
public HouseBlend()
...{
description = "House Blend Coffee";
}
public override double cost()
...{
return 0.89;
}
}
public class Mocha : CondimentDecorator
...{
Beverage beverage;
public Mocha(Beverage beverage)
...{
this.beverage = beverage;
}
public override String getDescription()
...{
return beverage.getDesciption() + ",Mocha";
}
public override double cost()
...{
return 0.20 + beverage.cost();
}
}
- 装饰模式-撤销装饰
- 装饰模式
- 装饰模式
- 装饰模式
- 装饰模式
- 装饰模式
- 装饰模式
- 装饰模式
- 装饰模式
- 装饰模式
- 装饰模式
- 装饰模式
- 装饰模式
- 装饰模式
- 装饰模式
- 装饰模式
- 装饰模式
- 装饰模式
- 如何调用DLL
- Java中利用JMF编写摄像头拍照程序
- 终于云开见日了!
- MSIL - the language of the CLR (Part 1)
- 用C#实现在Word文档中搜索文本
- 装饰模式
- Symbian中TRAP问题
- ASP.NET如何存取SQL Server数据库图片
- 搜索引擎URL中的汉字解析
- UNC
- 说在最前面
- PHP5 OOP编程之代理与定制异常(1)[转]
- PHP5 OOP编程之代理与定制异常(2)
- 博客在此开张