Должен ли я разделить конвертер XStream на классы?

Я работаю над программой, которая использует XStream для записи в XML. В настоящее время у меня есть только один класс, который реализует Converter. Этот единственный преобразователь принимает мою ВСЮ конфигурацию, которая представляет собой HashMap в своем корне, а значение каждого ключа является новым экземпляром класса VMwareServer, который, в свою очередь, имеет HashMap, где значением ключа является новый экземпляр класса VMwareVirtualMachine. У каждого из соответствующих классов есть методы для установки и получения таких вещей, как IP address и port number.

Мне интересно, является ли это правильным способом реализации преобразователя XStream, или мне следует создать отдельный преобразователь для преобразования каждого класса в XML самостоятельно?

Я могу показать некоторый код, если есть еще вопросы о том, что я имею в виду.


person ianc1215    schedule 09.04.2013    source источник
comment
Что ты делаешь в конвертере? Xstream может выполнять глубокое ранжирование любого объекта без конвертера.   -  person Bhushan Bhangale    schedule 09.04.2013
comment
В основном я использую конвертер, чтобы переформатировать вывод в немного более красивую форму. Причина, по которой я использую конвертер, заключается в том, что некоторые объекты из java перемещаются, чтобы все было организовано.   -  person ianc1215    schedule 09.04.2013
comment
У вас должен быть конвертер для каждого класса.   -  person Bhushan Bhangale    schedule 09.04.2013


Ответы (1)


Это несколько спорно, но я бы посоветовал иметь отдельный преобразователь для каждого класса. Это имеет несколько преимуществ: если вам позже потребуется вернуть подмножество вашего полного представления, вы сможете легко разложить структуру по линиям на основе классов (возможно, например, чтобы ограничить информацию разрешениями). Если вам нужно вернуть несколько разные представления в разных контекстах, вы можете сделать это для каждого класса, а не дублировать всю логику представления в своем монолитном классе.

person asthasr    schedule 09.04.2013
comment
Да, видишь, я примерно так и думал. В некоторых случаях в зависимости от определенных значений я не могу создать определенные части XML-файла. - person ianc1215; 09.04.2013