Программное обеспечение, которое я буду создавать, будет включать в себя переключение между приложениями. Определенные задачи могут быть выполнены в зависимости от статуса приложения. Я думал об использовании enum в качестве статуса
public class Application
{
public int Id {get;set;}
public Status {get;set;}
}
public enum Status
{
[Description("New")]New = 1, [Description("Closed")]Closed = 2
}
Но потом я подумал, что, может быть, хорошо использовать таблицу поиска в базе данных, так как статус часто обновляется / переупорядочивается
table status (id int pk, desc string, sort_order int)
table application (id int pk, status_id int fk)
В моем случае мне нужно сделать что-то вроде
if (application.Status == Status.New)
{ //do something }
else if (application.Status == Status.Closed)
{ //do other things }
Я думаю, что вышеупомянутый случай легче сделать с enum. Однако, когда дело доходит до обновления порядка или описания сортировки по статусу, это будет довольно сложно.
Должен ли я использовать отражение для динамического создания перечисления на основе значений из справочной таблицы? Или я должен использовать шаблон состояния? Проблема, с которой я сталкиваюсь при перечислении перечислений, - это влияние на производительность. А шаблон состояний может создавать много избыточного кода.
Что вы думаете? Заранее спасибо!