在下面的场景中是否有使用接口的设计指南?
我可以在DerivedClass或ISomeInterface接口或两者中声明IDescription.3个选择,什么指导方针可以帮助我确定哪个是最好的.
public interface IDescription
{
String Description { get; }
}
public interface ISomeInterface
{
String Name { get; }
String Description { get; }
}
public class DerivedClass : Base, ISomeInterface, IDescription
{
public String Description { get; private set; }
}
Run Code Online (Sandbox Code Playgroud)
它取决于具体的接口和它们的逻辑关系.每种情况都没有通用的解决方案.您提到的2个选项在某些情况下是正确的:
如果尽可能在编写良好的代码中,派生接口并同时实现父接口和子接口的情况很少见.你总是可以避免它.如果为类本身指定接口第二次,我没有看到任何问题.同时也没有利润.所以最好不要这样做.
重要说明:不要仅基于匹配的属性名构建继承层次结构 - 它们可以巧合相同.在创建基类或接口之前,始终要考虑这是巧合还是固定关系.否则,你会万吨接口等结束了IDescription,IName,IID等这并不意味着任何东西,只是代码的复杂性.