Моя команда разработчиков столкнулась с проблемой дизайна. Я надеюсь, кто-то может помочь мне немного очистить эту часть архитектуры.Как обращаться с массивной фабрикой в чистом виде
В моей системе у меня есть перечисление с 250 членами [один член представляет собой отдельный снимок]. Чтобы заполнить выпадающие списки в любом окне, эта форма отправляет в элементы перечисления, которые связаны с необходимыми выпадающими списками, и выпадающая информация возвращается.
Другими словами, скажем, например, у нас есть 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 отдельных файлах в нашем источнике ...)? Есть ли другой образец, который более полезен? Просто наличие этого оператора HUGE становится неуправляемым.
Любая помощь очень ценится. Заранее спасибо!