Гибкий 3:следует ли мне предоставлять подготовленные данные моему компоненту или заставить его обрабатывать данные перед отображением?

StackOverflow https://stackoverflow.com/questions/2511796

  •  22-09-2019
  •  | 
  •  

Вопрос

Я начинаю немного изучать Flex просто ради развлечения и, возможно, чтобы доказать, что я все еще могу научиться чему-то новому :) У меня есть некоторая идея проекта, и одна из его частей — это древовидный компонент, который может отображать данные по-разному в зависимости от конфигурация.

Идея

Существует список объектов, имеющих такие свойства, как идентификатор, дата, время, имя, описание.И иногда список должен отображаться так:

  1. Первый уровень:дата
  2. второй уровень:время
  3. третий уровень:имя

а иногда и так:

  1. Первый уровень:год
  2. второй уровень:месяц
  3. третий уровень:день
  4. четвертый уровень:время и имя

Под уровнем я, конечно, имею в виду уровень вложенности.Итак, у нас могут быть годы, месяцы, дни, часы и так далее.

Проблема

Каким может быть лучший способ сделать это?Я имею в виду, должен ли я готовить данные для различных способов вложения вне компонента или даже вне гибкости?Я могу сделать это на уровне веб-сервиса на C#, где я планирую иметь уровень доступа к базе данных и отправить его в гибкий интерфейс, готовый отображать XML или массив объектов.Но мне интересно, не приведет ли это к дополнительному и, возможно, ненужному сетевому трафику.

Я пытался взломать некоторый код в своем компоненте, чтобы преобразовать объекты данных в XML или ArrayCollection, но я недостаточно разбираюсь в Flex и застрял на устранении дубликатов или получении конкретных данных по некоторому значению ключа.Обычно для таких вещей у меня есть STL с картами, наборами и векторами, и я нахожу массивы Flex и даже словарь немного запутанными (я читал справочник по языку и гуглил, но без особого успеха).

Вопрос

Итак, подведем итоги:Должен ли я предоставить данные компонента дерева, подготовленные только для выбранного типа отображения, или мне следует попытаться сделать это внутри компонента (или какого-либо вспомогательного класса, написанного на ActionScript)?

ДОПОЛНИТЕЛЬНЫЙ ВОПРОС

Будет ли хорошим подходом подготовить отдельные модели данных для каждого способа отображения и какой-нибудь преобразователь для передачи данных между ними, и результирующая модель будет привязана к компоненту в качестве поставщика данных?Или, может быть, есть какой-то другой умный способ сделать это, и мои данные автоматически реорганизуются?:)

Это было полезно?

Решение

Я бы предпочел получать необработанный поток данных из вашего веб-сервиса и обрабатывать его различными способами в гибком клиенте (во вспомогательном классе Actionscript).Вот преимущества, которые я вижу:

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

2) Более быстрая обработка и реагирование клиентов.Обмен представлениями не потребует вызова вашего веб-сервиса, и клиент Flex, скорее всего, будет быстрее обрабатывать сами данные, чем дополнительный веб-трафик.

3) Повышенная доступность.Без дополнительных вызовов вашего веб-сервиса вероятность сбоя сети снижается.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top