我应该首先说我是一个非常喜欢接口的菜鸟,所以这可能是一个非常愚蠢的问题。如果我的标题不清楚,也很抱歉 - 符合我的心态!
我确实了解接口背后的原理,并且我想在这里使用它们来支持单元测试以及通过 DI 框架在非常混乱且不可测试的遗留代码中解耦。
我有一个名为 IDatHandler 的接口。它有一个名为 Items 的 List<> 属性。具体实现应该返回一个具体类型的 IDatContainer。当然有一些方法,但我把它们排除在外
public interface IDatHandler
{
....
List<IDatContainer> Items
{
get; set;
}
}
这是一个具体的实现:
public class ADEColorHandler : IDatHandler
{
....
public List<ADEColor> Items
{
get; set;
}
}
}
ADEColor 实现 IDatContainer。除非我ADEColor
用IDatContainer
.
有没有办法让 Items 作为类型列表返回,ADEColor
还是我只是违反规则?
我应该说这个应用程序当前使用的是 NET 3.5
=========>>> 答案 - 谢谢查理!
IDatHandler 接口
public interface IDatHandler<T> where T : IDatContainer
{
....
List<IDatContainer> Items
{
get; set;
}
}
具体类:
public class ADEColorHandler : IDatHandler<ADEColor>
{
....
public List<ADEColor> Items
{
get; set;
}
}
}
我针对此列表对 ADEColorHandler Assert 进行单元测试并通过。