Показать сообщение отдельно
Старый 16.12.2011, 23:36
expl вне форума Посмотреть профиль Отправить личное сообщение для expl Найти все сообщения от expl
  № 25  
Ответить с цитированием
expl

блогер
Регистрация: Feb 2006
Сообщений: 1,474
Записей в блоге: 3
Обычно поступаем так:

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

Остальные данные от сервера делятся на статические и динамические.
Динамические - это то, что клиент получает, отправляя запросы
Статические - это так называемые "справочники" - там начиная от списка товаров с параметрами, заканчивая геометрией "фермы" и общими с сервером константами
На клиенте представлены набором классов, которые парсят их в типизированные объекты, типа
Код AS3:
public class ShopDictionary
{
    public function parseXML(xml:xml):void {...}
    public function get items():Vector<Item> {}
}
// или
public class VegetablesDictionary
{
   public function parseXML(xml:XML)
   public function getByType(type:int):Vegetable;
}
Статика грузится вся сразу, даже делаются некоторые проверки валидности, чтобы авторы справочников не косячили, например в одном справочнике не ссылались на итемы, отсутствующие в другом.

Цитата:
Как хранятся у вас сложные структуры данных? Ну первый пример, приходящий на ум, - это товары в магазине, которые могут фильтроваться по рубрикам, сортироваться по цене, ну и другие критерии. Как обновляете (удаляете/добавляете) такие структуры?
Можно конечно напихать функций-фильтров в книжки, но:
- фильтры могут зависеть от динамических параметров
- фильтры всетки больше логик отображения чем данных
Поэтому фильтрация идет обычно прямо в классе диалогового окна, или в классе-контроллере диалогового окна (если окно повторно используется в нескольких местах)


Последний раз редактировалось expl; 17.12.2011 в 00:22.