当我有多层类和接口时,我对使用接口提取的最佳方法有点困惑。假设我有以下层次结构:
Foo : WidgetBase, IWidget
WidgetBase: BusinessObject, IThingy
IThingy : IGenericObject
现在我知道我必须将 IFoo 接口提取到一个单独的项目中;但是该接口结构是否必须复制真实结构 - 这意味着我也必须为 BusinessObject 和 WidgetBase 提取接口?或者这是否意味着我应该在创建提取的接口时展平结构,创建 1 个接口 IFoo,包含与 Foo 的属性及其所有父类和接口相对应的属性,一直到层次结构?
我的接口中还有一些枚举类型属性 - 我怎样才能最好地解决这些问题?
public interface IWidget
{
public WidgetType Type { get; set; }
}
public enum WidgetType
{
Big, Small
}
请阐明一些观点。