私は、実装が任意のサイズの辞書をサポートできるインターフェイス/抽象クラスを持っていName
ますidentifier
。identifier
各実装には、実装固有の異なる形式があります。
呼び出し元は、プロバイダーから のリストを取得し、Name
それらを使用してユーザーに関心のあることを尋ねる必要があります。ユーザーは 1 つ以上を選択できます。
呼び出し元が名前の配列を取得し、int の配列を渡すことでユーザーの選択を設定し、ユーザーが選択した名前の配列インデックスを識別する次の設計を検討しました。
public abstract String[] GetNames();
public abstract void SetNamesToUse(int[] names);
これには満足できず、オブジェクトのリストが渡されるモデルも検討しました。
public class NameObject {
public bool SelectedByUser;
public String Name;
private String ProviderSpecificData;
}
...
public abstract List<NameObject> GetNames();
public abstract void SetNamesToUse(List<NameObject> names);
これは、呼び出し元にとってよりクリーンで簡単に見えます。
他にどのような選択肢がありますか? どのように同様に解決しましたか?