У меня есть объект с двумя свойствами: Text
и Type
.Избегайте жесткого кодирования в операторе switch
Чтобы избежать жесткого кодирования типов, я поместил их в базу данных, чтобы их можно было добавить в будущем. На данный момент типы: URL, Username and ID
.
Однако теперь я хочу запустить метод Utility для очистки поля объекта, на основе которого Type
объект (например, добавляет 'http: //', если его URL-адрес).
Есть ли способ сделать это в классе Utilities без жесткого кодирования типов в инструкции switch или if else block.
switch (type)
{
case 1:
TidyUrl();
case 2:
TidyUsername();
case 3:
TidyID();
default:
break;
}
В этом примере я жестко прописывать идентификаторы из базы данных («Тип» таблицы), которая никогда не может быть хорошей вещью!
Есть ли лучший способ сделать это?
Я использую интерфейсы и фабрики, перечисления или имена методов в базе данных, похоже, не обойти логику if/else, которая понадобится где-то, чтобы сказать, что есть, и это та часть, которую я не могу заплатить d - способ избежать жесткого кодирования. – finoutlook