繁体   English   中英

Inheritance 最佳实践:属性也应该是接口吗?

[英]Best Practice of Inheritance: Property should be an interface too or not?

我有 2 个接口和 2 个类:

public interface interface A
{
     List<B> MyList { get; set; }
}

public interface interface B
{
    string Name { get; set; }
}

public class ImplementA : A
{
     List<ImplementB> MyList { get; set; }
}

public class ImplementB : B
{
    string Name { get; set; }
}

所以这给了我一个错误,因为 ImplementA 没有填充接口 A。它不是因为我必须拥有接口 B 的属性列表而不是 ImplementB 的列表。

填充接口但仍然能够在类中有一个具体类和接口中有一个抽象接口的最佳实践是什么?

该示例非常友好,可以使其成为Generic

public interface A<T>
{
     List<T> MyList { get; set; }
}

public interface B
{
    string Name { get; set; }
}

public class ImplementA : A<ImplementB>
{
    public List<ImplementB> MyList { get; set; }
}

public class ImplementB : B
{
    public string Name { get; set; }
}

或者这个,根据您的需要

public class ImplementA : A<B>
{
    public List<B> MyList { get; set; }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM