私の開発チームは設計上の問題に遭遇しました。誰かがアーキテクチャのこの部分を少しきれいにするのを手伝ってくれることを願っています.
私のシステムには、250 のメンバーを持つ列挙型があります [1 つのメンバーは個別のドロップダウンを表します]。特定のウィンドウにドロップダウンを設定するために、そのフォームは必要なドロップダウンに関連する列挙メンバーを送信し、ドロップダウン情報が返されます。
つまり、たとえば 3 つのウィンドウがあるとします。ウィンドウ A にはドロップダウン X、Y、Z があります。ウィンドウ B にはドロップダウン W、X、Y があり、ウィンドウ C にはドロップダウン T、U、W があります。私の DropDownType 列挙は T、U、W、X、Y、Y で構成されます。 、および Z です。そのため、指定されたウィンドウについて、そのウィンドウのドロップ ダウンが与えられた場合、それらのドロップ ダウンに表示されるデータをクエリします。
私のアプリケーションは 250 を超える個別のドロップダウンで構成されているため、これは単純化された例です。
ご想像のとおり、各ドロップダウンのデータを返すように工場でセットアップされています。そして、このファクトリは、リクエストされたドロップダウンごとに呼び出されます。
switch (dropDownType)
{
case DropDownType.T:
return (from t in dataContext.GetTable<TableOne>()
select new DropDownDto
{
DropDownDisplayName = t.ColumnA,
DropDownValue = t.ColumnB
}).ToList();
case DropDownType.U:
return (from u in dataContext.GetTable<TableTwo>()
select new DropDownDto
{
DropDownDisplayName = u.ColumnC,
DropDownValue = u.ColumnD
}).ToList();
// etc...
}
この列挙型には非常に多くのメンバーが含まれているため、これをよりエレガントにコーディングする方法を知っている人はいますか? これをファクトリ メソッドに変換すると便利だと思いますか (ただし、ソース内の 250 の個別のファイルについて心配する必要があります...)。もっと便利な別のパターンはありますか?この巨大な switch ステートメントを持つだけで、手に負えなくなります。
どんな助けでも大歓迎です。前もって感謝します!