在 C# 中实现多个接口
本文关键字:接口 实现 | 更新日期: 2023-09-27 18:33:12
在我的程序中,我定义了几个接口,如IInterface1,IInterface2,IInterface3,IInterface4,IInterface5,如果我需要在具体类中实现所有五个接口,您是否直接实现这些接口,如下所示
public class EntityClass: IInterface1,IInterface2, *** IInterface5
{
}
或者你会创建一个先继承自这些接口的接口,然后实现该接口吗?
public interface IEntity: IInterface1,IInterface2, *** IInterface5
{
}
public class EntityClass:IEntity
{
}
接口的继承表示"is-a"关系。 如果 IEntity 的每个实现也必须是 IInterface1,您将从 IInterface1 继承 IEntity。
是:公共接口 IPanda : IBear
可能不是:公共接口 IAccountant : IObsessive强迫症
这取决于您的用例。
如果您的IEntity
始终包含其他接口,那么使其实现其他接口会容易得多。
如果不是这种情况,则必须以一种没有类必须实现它不需要的方法的方式抽象它,同时也需要尽可能少的实现。
话虽如此:如果您只将其用于一个或两个类,您也可以使用接口列表,而不是将它们分组到中间接口中。
这两种方法在良好做法的背景下都是有效的。但是,这完全取决于您的设计。我发现处理继承的最好方法是尝试回话你继承的东西,并确保它是有意义的。
例如,"每个实体类都是IEntity吗?",这可能是真的。但是,询问"每个EnetityClass都是接口1,接口2等吗",对于某些实例可能是正确的,而对于其他实例则不然,但所有这些都是在IEntity上实现的。
将许多接口实现聚合到一个接口中的问题可能是,当您在本身具有许多接口的接口上实现更多类时,当实现只需要几个接口时,在这种情况下,您需要重新设计设计以确保继承树有意义。