首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在运行时禁用已实现的接口功能

在运行时禁用已实现的接口功能
EN

Stack Overflow用户
提问于 2014-04-09 00:54:13
回答 1查看 124关注 0票数 0

假设我有个汽车游戏,我们在汽车修理厂。默认模型是预先考虑到以下附件的:

代码语言:javascript
运行
复制
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实现中禁用的功能?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-04-09 01:03:19

这里使用组合,而不是继承。你的车是马达,是警报器,是刹车,当它应该有它们时。这种脱钩使得你想要做的事情容易得多。

请参阅Prefer composition over inheritance?

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22950943

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档