На ум приходит шаблон команды , или его небольшая вариация.
У вас есть несколько классов, каждый из которых специализирован для определенной операции с вашим классом данных. Вы можете хранить эти классы в hashmap или в какой-либо другой структуре, где внешний выбор может выбрать один для выполнения. Чтобы сделать это, вы вызываете метод execute () выбранной Команды с вашими данными в качестве аргумента.
Редактировать: Разработка.
На нижнем уровне вам нужно что-то сделать с каждым атрибутом строки данных.
Это действительно звучит как случай для шаблона посетителя: посетитель имитирует двойной
операция отправки, поскольку вы можете комбинировать переменный объект "жертва"
с переменной «операция», инкапсулированной в методе.
Все ваши атрибуты хотят быть в формате xml-ed, text-ed, вставлено-ed обновлено и инициализировано.
Таким образом, вы получите матрицу из 5 х 3 классов для выполнения каждой из этих 5 операций.
каждому из 3 типов атрибутов. Остальная часть механизма посетителя
проследит ваш список атрибутов для вас и применит правильного посетителя для
операция, которую вы выбрали правильно для каждого атрибута.
Написание 15 классов плюс интерфейс (ы) звучат немного тяжело. Вы можете сделать это
и иметь очень общее и гибкое решение. С другой стороны, во время
вы потратили время на обдумывание решения, вы могли бы взломать код
к нему для известной в настоящее время структуры и скрестил пальцы, что форма
ваши уроки не будут меняться слишком часто.
Там, где я думал о шаблоне команд, был выбор среди множества похожих
операции. Если операция должна быть выполнена в виде строки, возможно, в
сценарий или файл конфигурации или что-то подобное, вы можете получить отображение из
"xml" -> XmlifierCommand
"text" -> TextPrinterCommand
"serial" -> SerializerCommand
... где каждая из этих команд затем запускает соответствующего посетителя для выполнения
работа. Но так как операция, скорее всего, будет определена в коде, вы, вероятно,
мне это не нужно.