我的解决方案中有几个业务对象。所有这些都是内部类,它们实现了内部接口,用于单元测试的好处和一般可交换性(IoC)。其中一些对象具有额外的公共接口,以使其可从其他程序集访问。在这些情况下,内部接口将继承公共接口。公共接口提供对对象的有限访问。例如:
public interface IMyObject
{
String Color { get; }
}
internal interface IMyObjectInternal : IMyObject
{
new String Color { get; set; }
void InternalMagic();
}
internal class MyObject : IMyObjectInternal
{
String Color = "Red";
String IMyObject.Color
{
get { return this.Color; }
}
String IMyObjectInternal.Color
{
get { return this.Color; }
set { this.Color = value; }
}
void IMyObjectInternal.InternalMagic() { }
}
这是一种切实可行的方法,还是应该使用内部抽象类而不是内部接口?请考虑我使用IoC容器匿名创建对象实例。