让我们说我有一个汽车游戏,我们在汽车设置车库。默认模型预装了这些附件:
public class MyCar : IMotor, IBrakes, IAlarm
{
public void Run(){...};
public void Stop(){...};
public void ProtectFromThieft(){...};
}
public interface IMotor
{
void Run();
}
public interface IBrakes
{
void Stop();
}
public interface IAlarm
{
void ProtectFromThieft();
}
游戏玩家已经实例化了一个MyCar
对象,然后他决定将alarm
卖回车库以获得现金。
如何在运行时的具体IAlarm
实施中停用MyCar
的功能?
答案 0 :(得分:1)
此处使用合成而不是继承。你的汽车是一个电机,是一个警报器,并且刹车,而它应该有它们。这种脱钩使您想要做的事情变得更加容易。