Гибкий 3:следует ли мне предоставлять подготовленные данные моему компоненту или заставить его обрабатывать данные перед отображением?
-
22-09-2019 - |
Вопрос
Я начинаю немного изучать Flex просто ради развлечения и, возможно, чтобы доказать, что я все еще могу научиться чему-то новому :) У меня есть некоторая идея проекта, и одна из его частей — это древовидный компонент, который может отображать данные по-разному в зависимости от конфигурация.
Идея
Существует список объектов, имеющих такие свойства, как идентификатор, дата, время, имя, описание.И иногда список должен отображаться так:
- Первый уровень:дата
- второй уровень:время
- третий уровень:имя
а иногда и так:
- Первый уровень:год
- второй уровень:месяц
- третий уровень:день
- четвертый уровень:время и имя
Под уровнем я, конечно, имею в виду уровень вложенности.Итак, у нас могут быть годы, месяцы, дни, часы и так далее.
Проблема
Каким может быть лучший способ сделать это?Я имею в виду, должен ли я готовить данные для различных способов вложения вне компонента или даже вне гибкости?Я могу сделать это на уровне веб-сервиса на C#, где я планирую иметь уровень доступа к базе данных и отправить его в гибкий интерфейс, готовый отображать XML или массив объектов.Но мне интересно, не приведет ли это к дополнительному и, возможно, ненужному сетевому трафику.
Я пытался взломать некоторый код в своем компоненте, чтобы преобразовать объекты данных в XML или ArrayCollection, но я недостаточно разбираюсь в Flex и застрял на устранении дубликатов или получении конкретных данных по некоторому значению ключа.Обычно для таких вещей у меня есть STL с картами, наборами и векторами, и я нахожу массивы Flex и даже словарь немного запутанными (я читал справочник по языку и гуглил, но без особого успеха).
Вопрос
Итак, подведем итоги:Должен ли я предоставить данные компонента дерева, подготовленные только для выбранного типа отображения, или мне следует попытаться сделать это внутри компонента (или какого-либо вспомогательного класса, написанного на ActionScript)?
ДОПОЛНИТЕЛЬНЫЙ ВОПРОС
Будет ли хорошим подходом подготовить отдельные модели данных для каждого способа отображения и какой-нибудь преобразователь для передачи данных между ними, и результирующая модель будет привязана к компоненту в качестве поставщика данных?Или, может быть, есть какой-то другой умный способ сделать это, и мои данные автоматически реорганизуются?:)
Решение
Я бы предпочел получать необработанный поток данных из вашего веб-сервиса и обрабатывать его различными способами в гибком клиенте (во вспомогательном классе Actionscript).Вот преимущества, которые я вижу:
1) Это дает хорошее разделение обязанностей.Например.веб-сервис должен знать о данных, но не о том, как они будут отображаться.
2) Более быстрая обработка и реагирование клиентов.Обмен представлениями не потребует вызова вашего веб-сервиса, и клиент Flex, скорее всего, будет быстрее обрабатывать сами данные, чем дополнительный веб-трафик.
3) Повышенная доступность.Без дополнительных вызовов вашего веб-сервиса вероятность сбоя сети снижается.