2008-11-13 2 views
1

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

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

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

ответ

0

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

0

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

+0

так что вместо структуры, просто фасад объекта xml? звучит как лучший из обоих миров, мне очень нравится это решение, особенно в таких языках, как as3 с get/set accessors – putgeminmouth 2008-11-13 19:57:03

1

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

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

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

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

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

0

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

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

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

Смежные вопросы