2つのクラス(これはC#です)がありますが、それぞれに独自のネストされたクラスと列挙型が含まれている点が異なります。
両方を単一の抽象クラスから継承するようにリファクタリングしたいのですが、メソッドがすべてネストされたクラスタイプに緊密に結合されているため、問題が発生しています。
私の最初の計画はItemDetailsクラスを引き出すことでしたが、それは各ビューアイテムクラスに固有の列挙型であるItemTypeにリンクされています。さらに、詳細をxmlファイルにシリアル化できる必要があるため、System.Enumを型として使用することはできません。
これらのクラス内の重複をどのように減らすことができますか?
public class FirstViewItem
{
[Serializable]
public class ItemDetails
{
public ItemType Type;
public int Width;
public string Text;
public int DisplayOrder;
}
public enum ItemType
{
None = 0,
A,
B,
C
}
public FirstViewItem()
{
// ...
}
public List<ItemDetails>()
{
// code here ...
}
}
public class SecondViewItem
{
[Serializable]
public class ItemDetails
{
public ItemType Type;
public int Width;
public string Text;
public int DisplayOrder;
}
public enum ItemType
{
None = 0,
X,
Y,
X
}
public SecondViewItem()
{
// ...
}
public List<ItemDetails>()
{
// code here ...
}
}