您的位置:首页 > 其它

装饰模式

2011-11-12 11:58 309 查看
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();


}


}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: