我有一个装饰器模式的实现,现在我想写一个方法"Add Decoration",哪个是拥有这个方法ICar或Car的最好的类/接口?以及如何将基本的汽车指向新的装饰汽车?
示例用法:
ICar car=new Car();
ICar radial= new Radial();
car.AddDecoration(radial);
interface ICar
{
int Speed { get; set; }
void Accelerate();
}
class Car : ICar
{
private int speed = 0;
public int Speed
{
get
{
return speed;
}
set
{
speed = value;
}
}
public virtual void Accelerate()
{
Speed += 5;
}
}
abstract class CarModification : ICar
{
private ICar modifiedCar;
public ICar ModifiedCar
{
get { return modifiedCar; }
set { modifiedCar = value; }
}
public virtual int Speed
{
get
{
return modifiedCar.Speed;
}
set
{
modifiedCar.Speed = value;
}
}
public void Accelerate()
{
modifiedCar.Accelerate();
}
}
class Radial : CarModification
{
public void Accelerate()
{
base.Accelerate();
Speed += 1;
}
}发布于 2013-11-02 20:30:13
interface ICar
{
int Speed { get; set; }
void Accelerate();
}
class Car : ICar
{
public int Speed { get; set; }
public virtual void Accelerate()
{
Speed += 5;
}
}
class Radial : ICar
{
private readonly ICar modified;
Radial(ICar modified)
{
this.modified = modified;
}
public int Speed
{
get { return modified.Speed;
set { modified.Speed = value; }
}
public void Accelerate()
{
modified.Accelerate();
modified.Speed += 1;
}
}
ICar car = new Radial(new Car());
car.Accelerate();https://stackoverflow.com/questions/19741817
复制相似问题