SO に似たバッジ システムのコーディングについては、すでに多くの質問がありますが、私の質問は異なります。アチーブメント キー (id)、ユーザー ID、およびその他のデータを含む行として DB に格納されている Web ページ システム、バッジ/アチーブメントがあるとします。
私の簡単な質問は、バッジ ID をどこに保存すればよいですか? 達成されたかどうかをテストするためのすべてのデータとメソッドを含む、達成ごとに 1 つのクラスがあります。ある時点で数十または数百になると思います。ID を 1 回だけハード コードして、1 つの簡潔な場所で使用するようにしたいので、ID を誤って変更したり、混同したりする可能性はありません。
次のように、クラスでそれらをハードコーディングできます
public int Key { get { return 15; } } // I'm calling it Key, not ID
しかし、実績を複数のファイルに分割する場合、新しいキーを追加して間違いを犯す危険があるときに、最上位のキーを探し回る必要はありません。
それらを別のクラスの辞書に入れることができます...
public class AchievementSet
{
private Dictionary<int, Achievement> _achievements;
public AchievementSet()
{
_achievements = new Dictionary<int, Achievement>()
{
{ 1, new SomethingAchievement() }
};
}
}
しかし、今ではクラス自体が独自のキーを認識していないため、それを行う必要があります (またはそうする必要があります)。これをコンストラクターに渡すと、数値が一致しないリスクがあります。
推奨事項はありますか?