Обычно поступаем так:
Есть конфиг клиента - это просто список поле-значение в 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;
}
Статика грузится вся сразу, даже делаются некоторые проверки валидности, чтобы авторы справочников не косячили, например в одном справочнике не ссылались на итемы, отсутствующие в другом.
Цитата:
|
Как хранятся у вас сложные структуры данных? Ну первый пример, приходящий на ум, - это товары в магазине, которые могут фильтроваться по рубрикам, сортироваться по цене, ну и другие критерии. Как обновляете (удаляете/добавляете) такие структуры?
|
Можно конечно напихать функций-фильтров в книжки, но:
- фильтры могут зависеть от динамических параметров
- фильтры всетки больше логик отображения чем данных
Поэтому фильтрация идет обычно прямо в классе диалогового окна, или в классе-контроллере диалогового окна (если окно повторно используется в нескольких местах)