私はこのC#クラス構造を持っており、最高のコーディング標準を使用するようにリファクタリングしたいと思います(インターフェイス/抽象クラスを使用)。これにより、保守と再利用が容易になります。現在のコードはひどいものではありませんが、理想的ではありません。
一連のTableItemGroupクラスがあります:AccountTableItemGroup、PendingVoteTableItemGroup、およびRequestingVoteTableItemGroup。各TableItemGrupには、文字列SectionNameと、対応するTableItemのリストが含まれています...
public class AccountTableItemGroup {
public string SectionName { get; set; }
public List<AccountTableItem> Items
{
get { return this._items; }
set { this._items = value; }
}
public List<AccountTableItem> _items = new List<AccountTableItem>();
public AccountTableItemGroup()
{
}
}
将来的にはさらに多くのTableItemGroupがあり、List部分を除いてすべて同じである場合、コードをコピーして毎回新しいグループを作成し、その小さな変更を加える必要はありません。もっと良い方法があるに違いないことを私は知っています。List <>ジェネリックを使い続けたいので、後で何もキャストする必要はありません。
他の部分はTableItemsです。AccountTableItem、PendingVoteTableItem、およびRequestingVoteTableItemがあります。TableItemsは互いに異なりますが、それぞれ3つの共通の文字列(TitleLabel、DetailLabel、およびImageName)を共有します。ただし、その後、各TableItemには、追加のプロパティまたはメソッドが含まれる場合と含まれない場合があります。
public class AccountTableItem
{
public string TitleLabel { get; set; }
public string DetailLabel { get; set; }
public string ImageName { get; set; }
public bool SwitchSetting { get; set; }
public AccountTableItem()
{
}
}
それで、皆さんへの私の質問は、コードの可能な限り多くの再利用を可能にし、最高のコーディング標準を使用するために、クラス構造を再定義するにはどうすればよいですか?
抽象TableItemクラスを作成することを考えていましたか、それともTableItemGroupのインターフェイスを使用することを考えていましたか?インターフェイスまたは抽象クラスを使用することがコーディング標準に最適であることは知っていますが、それによってコードの量がどのように削減されるかわかりません。
助けてくれてありがとう。