Передача объекта XML против заполнения структуры - PullRequest
1 голос
/ 13 ноября 2008

Actionscript 3.0 имеет приличную поддержку нативного XML, поэтому я не удивлен, что многие люди загружают внешний XML и затем передают объект в различные модули / разделы кода.

Однако мой инстинкт заключается в том, чтобы создать класс (то есть со статически именованными / типизированными полями), заполнить его из XML и вместо этого передать THAT. Преимущество состоит в том, чтобы отделить структуру от формата сообщения / данных, но вы теряете возможность поиска, предоставляемую XML, и если у вас много вложенных структур, я могу видеть, как может потребоваться много времени начальной обработки для ее преобразования.

Так какая же здесь лучшая практика? Для действительно небольших проектов / случаев использования я все еще просто использую XML, но когда он становится больше или у меня есть предвидение, я склонен идти по пути класса.

Ответы [ 4 ]

1 голос
/ 14 ноября 2008

Я бы сказал, что из-за того, что объект XML не имеет статической структуры, он открывает широкие возможности для проникновения ошибок в системы, а также делает код намного менее читаемым и понятным.

Так что я бы сказал, да, класс - это путь, это дополнительные усилия, но ваша система намного более структурирована из-за этого.

В прошлом я экспериментировал с переносом классов вокруг объектов XML, но это может сделать код внутри этих классов довольно грязным.

В настоящее время я экспериментирую с привязкой объектов XML к объектам с использованием класса XMLObjectBinder, который я написал (проекты на чистом ActionScript, а не Flex), так как я считаю этот подход наиболее чистым, поскольку XML находится вне поля зрения как можно скорее. Таким образом, мои классы стали чище из-за отсутствия в них XML, и привязка обычно выполняется в одну строку с фабрики.

Что касается возможности поиска, я согласен, что вы потеряете это, но я бы сказал, что фабричный шаблон в сочетании с некоторой привязкой XML к объекту устранит многие из этих проблем.

0 голосов
/ 07 октября 2009

Наконец, мое предпочтительное решение состоит в том, чтобы заполнить классы данными, но где-то хранить ссылку на XML, когда мне нужна возможность поиска.

0 голосов
/ 15 ноября 2008

Я не могу говорить с ActionScript, но я думаю, что опыт, который я имел в VB6 и C #, может быть уместным:

Изменение формата сообщений XML. Когда они это делают, код, который тесно связан с форматом разрывов сообщений. Если вы можете хранить весь код, который взаимодействует с XML, в одном месте, вы можете сдержать повреждение вашего приложения, которое изменяется в формате сообщений. Создание объектов из XML и последующее использование объектов в вашем коде позволяет вам сохранить большую часть кода изолированным от изменений в формате сообщения.

Существует множество приложений, в которых это не представляет особой опасности, например, когда можно связать логическую структуру кода со структурой XML, поскольку XML отражает логическую структуру домена приложения. , Таким образом, вы должны использовать некоторые суждения при принятии решения, какой подход выбрать.

0 голосов
/ 13 ноября 2008

Я склонен создавать «читательские» классы, которые загружают данные и сохраняют их в своем собственном объекте XML. Затем я передаю все необходимые данные из XML другим объектам как собственные типы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...