[英]c# best practices for interface and inheritance
我有一个带有接口的抽象基类。
interface ISubmit {
bool SubmitFile();
}
public abstract class SubmitMaster : ISubmit {
public abstract bool SubmitFile();
}
public class SubmitRoute : SubmitMaster {
public override bool SubmitFile() {
//...
}
}
基类具有子类使用的其他一些实现的方法,但是我需要确保每个子类都有SubmitFile()方法,并且每个子类都需要有自己的块。 目前,它的工作状况还不错,但是我觉得我所做的事情是多余的。 我什至需要界面吗? 还是将基类和SubmitFile()抽象化是错误的举动?
在这种情况下,最佳做法是什么?
在您的情况下,该接口绝对是多余的。
如果应该由不一定从SubmitMaster
抽象类派生的其他类实现该接口,也许我仍然会维护这样的接口。
或者,如果接口是API的一部分,并且您不需要在需要使用SubmitFile
方法的任何地方公开SubmitMaster
抽象类的所有成员。
实际上,在这里我可能会提出很多有用的理由,但是如果您只是在定义一个接口以在抽象类中实现该接口,并且您永远不会将引用键入为所谓的接口,那么, ,这绝对是多余的。
进一步阅读:
在这种情况下,最佳做法是什么? 我什至需要界面吗?
您是否打算进行制作,至少可以说三种 彼此无关的类型,但是所有这些类型都可以用作ISubmit?
例如,假设我们有一个代表序列的接口。 我可以给您一打完全不相关的类,它们都是序列。 数组,列表,字典,树,等等等等,它们都是序列。 因此,我们制作了一个表示序列的接口,即IEnumerable。
如果您不打算制作一堆具有共同用例的不相关事物,则不要使用界面 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.