假设我有个汽车游戏,我们在汽车修理厂。默认模型是预先考虑到以下附件的:
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
实现中禁用的功能?
发布于 2014-04-09 01:03:19
这里使用组合,而不是继承。你的车是马达,是警报器,是刹车,当它应该有它们时。这种脱钩使得你想要做的事情容易得多。
https://stackoverflow.com/questions/22950943
复制相似问题