クラスとインターフェイスの複数のレイヤーがある場合、インターフェイス抽出を使用する最善の方法について少し混乱しています。次の階層があるとします。
Foo : WidgetBase, IWidget
WidgetBase: BusinessObject, IThingy
IThingy : IGenericObject
これで、IFoo インターフェイスを別のプロジェクトに抽出する必要があることがわかりました。しかし、そのインターフェース構造は実際の構造を複製する必要がありますか?つまり、BusinessObject と WidgetBase のインターフェースも抽出する必要があるのでしょうか? それとも、抽出されたインターフェイスを作成し、Foo のプロパティに対応するプロパティとそのすべての親クラスとインターフェイスを含む 1 つのインターフェイス IFoo を作成するときに、構造をフラット化する必要があるということですか?
私のインターフェースにはいくつかの列挙型のプロパティもあります。
public interface IWidget
{
public WidgetType Type { get; set; }
}
public enum WidgetType
{
Big, Small
}
光を当ててください。