.net - 一个接口(interface)是否应该继承另一个接口(interface)

标签 .net oop inheritance

我似乎找不到这个问题的答案,只是想确保它是一个好的编码标准。我有接口(interface)A被许多不同的类使用并且不需要接口(interface) A改变。我遇到了一个新要求,许多实现接口(interface) A 的类都需要一个枚举。 ,但并非所有类都需要这个枚举。我不希望不需要这个新枚举的类来实现这个新功能。所以我创建了界面B其中包含我需要添加的新枚举。然后我制作了界面B继承接口(interface)A这是我关心的问题,一个接口(interface)可以继承另一个接口(interface)吗?为了继续我的更改,我更改了需要新枚举来实现接口(interface) B 的类。而不是接口(interface)A因为它是由接口(interface) B 继承的。我考虑过在需要它们的类中实现这两个接口(interface),但我在整个代码中都使用该接口(interface),并且希望只使用一个接口(interface)而不是两个接口(interface)来查看类。

我希望这足够清楚(可能太长),但如果有人能给我一些建议,无论我做对还是做错,请告诉我。

谢谢!

最佳答案

接口(interface)继承是一个出色的工具,但只有当接口(interface) B 真正可以替代接口(interface) A 时才应该使用它,而不仅仅是聚合松散相关的行为。

很难判断它是否适合您的具体情况,但原则上使用这种做法并没有什么问题。您总是在一流的 API 中看到它。仅从 .NET 框架中选取一个常见示例:

public interface ICollection<T> : IEnumerable<T>, IEnumerable

关于.net - 一个接口(interface)是否应该继承另一个接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1688808/

相关文章:

java - 如何比较java继承中的两个值?

c# - 在 C# 中以智能方式删除所有有问题的字符

.net - 为 .Net Framework 4.0 构建的 WIX 自定义操作不起作用?有什么办法解决?

c++ - 如何使用 C++ 上的引用删除对象

python - 从 __init__ 以外的方法/函数内部更改 tkinter 框架

java - 如何定义继承内部类的子类的构造函数?

.net - Azure 应用服务容器不断重新启动 - "Container failed availability check."

c# - MongoDb C# 驱动程序解析命令插入失败 : document does not contain shard key

java - 我应该如何将这些类分离到包/库中?

c# - c#中的继承和c#中的对象创建