设计模式之装饰decorator
public class DecoratorMode
{
public DecoratorMode()
{
//可以用工厂模式封装
Car car = new ESPDecorator(new CCSDecorator(new Car()));
car.Description();
}
}
public class Car {
/// <summary>
/// 装饰
/// </summary>
public virtual void Description()
{
Console.WriteLine("my car");
}
}
/// <summary>
/// ESP装饰者
/// </summary>
public class ESPDecorator : Car {
private Car car;
public ESPDecorator(Car car) {
this.car = car;
}
public override void Description()
{
car.Description();
Console.WriteLine("Add esp");
}
}
/// <summary>
/// 定速巡航装饰者
/// </summary>
public class CCSDecorator : Car
{
Car _car;
public CCSDecorator(Car car)
{
_car = car;
}
public override void Description()
{
_car.Description();
Console.WriteLine("Add CCS");
}
}
浙公网安备 33010602011771号