单个类的公共和内部接口

时间:2014-09-24 12:04:40

标签: c# interface

我的解决方案中有几个业务对象。所有这些都是内部类,它们实现了内部接口,用于单元测试的好处和一般可交换性(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容器匿名创建对象实例。

0 个答案:

没有答案