![]() |
Паттерн для обмена данными клиент-сервер
Друзья, хочется грамотно распланировать будущее Flash-приложение. Вроде все классы спроектированы, остается вопрос обмена данными с сервером - какой паттерн ООП можно для этого применить? Отправка запроса(взаимодействие через HTTP) -> ожидание - обработка ответа: есть для этого стандартные механизмы?
|
Если бы через XMLSocket - я бы советовал синглтон, но для запросов по HTTP экземпляры XML удобнее каждый раз создавать заново. И на onLoad удалять.
Еще может быть порекомендовал бы паттерн 'команда' и 'итератор' - если необходимо сделать несколько последовательных запросов по ответу на предыдущий. Часто так делаю, причем несколько итераторов могут работать асинхронно. |
Цитата:
Цитата:
|
Цитата:
Все запросы идут асинхронно, поэтому нет необходимости дожидаться ответа предыдущего, если это не предусмотрено логикой приложения. Созданные экземпляры XML в самом простом случае можно хранить в массиве, и по необходимости удалять (это, если я правильно понял, чтобы не объявлять кучу свойств :XML напрямую в классе). Короче вариантов масса, в зависимости от задачи. Если что-то конкретное, то распиши задачу подробнее. |
Цитата:
|
Если я правильно понял, ты отсылаеш запрос на сервер о скачивании .xml файла, и сразу же его удаляеш, а запрос все равно прошел?
Странно... я на год забил на флэш где то может чего и не понимаю... Расскажи поподробнее, как ты собрался сделать delete .xml (просто тупо удалить переменную, в которую должен был придти запрос?) |
Цитата:
Цитата:
..кстати, варианты дожидаться ответа первого запроса для отправки последующего не подходят. |
Паттерн "оболочка". Подписывайся не на события экземпляров XML, а на события оболочек.
При необходимости от них можно отписаться, после чего не опасаться, что onLoad уже ненужного xml вызовет какие-то методы главного класса. А оболочка в автономном плавании на onLoad удалит экземпляр xml и удалится сама. Кроме того, оболочке можно доверить дополнительную работу с xml-документом- это зачастую часто намного удобнее, чем делать это в основном классе, или расширять класс XML. |
Ромастый - гениально! То что нужно, спасибо! :victory:
|
| Часовой пояс GMT +4, время: 07:37. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.