1

私が開発しているアプリケーションでは、ユーザーがパーソナライズする必要がある多くの設定が表示されます。以下は、それがどのように実装されるべきだと思うかを説明しています。

好み:

public enum Weighting { One, Two, Three, Four, Five, 
                        Six, Seven, Eight, Nine, Ten }

public class PreferenceOption
{
    public bool PreferenceOptionSelected { get; set; }
    public Weighting Weighting { get; set; }
}

PreferenceOptionSelected はおそらく bool です。選択されている場合、ユーザーは重み付けを追加できます。選択されていない場合、重み付けは適用されませんが、アプリケーションはその値が false であることを認識する必要があります。これは、後で検索を容易にするためです。

利用可能なすべての設定を保持するクラス:

public class PreferenceOptions
{
    public PreferenceOption WantsHouse = new PreferenceOption()
    { PreferenceOptionSelected = false, Weighting = Weighting.One };
    // ... could be up to 15/20 options   
}

ユーザーが選択した/個人的な設定を保持するクラス:

public class UserPreferences
{
    public List<PreferenceOptions> UserPreferences { get; set; }
}

質問:

  1. この設計は、この種のシナリオにアプローチするための最良の方法ですか?

  2. 私はEFコードファーストを使用しています。これらの 3 つのクラスは、データベース内のエンティティとして永続化する必要がありますか? または、メモリ内PreferenceOptionPreferenceOptionsのみ存在し、の最終的な「リスト」の取得を容易にするために使用できますUserPreferences。ここが頭から離れない部分です。ユーザーの設定を保存するにはどうすればよいですか? テーブルメイクはどうする?

  3. ユーザーの設定を保存する方法について最初に考えたのはリストでしたが、完全なリストは連続して保存できないことはわかっていますが、XML にシリアル化すれば可能です。検索を容易にするために、後でユーザーの設定が重要になります。XML アプローチを使用した場合、検索前の逆シリアル化は非効率的であり、パフォーマンスのオーバーヘッドが発生します。私が考えているものへのより良いアプローチはありますか?

4

0 に答える 0