У меня есть общедоступное перечисление, как показано ниже:
public enum stringList1 {
string1,
string2,
string3,
string4,
string5,
}
Это перечисление "stringList1" упоминается во всем коде более чем в 100 местах.В настоящее время у меня есть требование поддерживать список ниже.
enum stringList2 {
string1,
string2,
string6,
}
На самом деле код должен выбирать либо stringList1, либо stringList2 в зависимости от условия.Я знаю, что перечисления не могут быть изменены, также очень трудно изменить весь код, чтобы поставить условие для выбора правильного списка перечислений.
Здесь рефакторинг не поможет, мне нужно выбрать либо stringList1, либо stringList2 во время выполнения, нов настоящее время stringList1 используется во всем коде.Один из вариантов - поместить условие во все места, куда stringList1 ссылается на указатель stringList1 или stringList2, но это очень сложно.
UseCase: это для обратной совместимости, stringList1 для текущей версии, скажем v2, stringList2 для v1,Данные могут управляться двоичным кодом V1 и двоичным кодом V2.В настоящее время, если пользователь пытается создать данные, используя двоичный файл V2, он создаст данные, которые не понимаются в V1.Таким образом, в двоичной версии 2 мне нужно проверить, если версия 1, мне нужно использовать stringList2, иначе stringList 1
Допустим, метод method1 (), который создаст некоторые предопределенные значения с помощью stringList1, здесь пользовательимеет доступ к method1 () не имеет доступа к значениям перечисления.так что пользователь просто вызывает method1, мне нужно найти версию, в зависимости от версии, я должен использовать stringList1 или stringList2, но проблема в том, что stringList1 используется во всем коде :( как Classname.stringList1.values () или Classname.stringList1 во всем коде, для некоторой внутренней обработки
Посоветуйте, пожалуйста, как мне поступить в этом случае.
Заранее спасибо, Ашок