Допустим, у меня есть несколько объектов (например, миниатюры в матрице), и мне нужно загрузить некоторые файлы данных для всех этих объектов по сети (HTTP). Таким образом, каждая миниатюра имеет собственно миниатюрное изображение и, например, XML-файл.
Существует множество вещей, которые могут пойти не так, как ошибки ввода-вывода, неверные URL-адреса, плохо отформатированный XML и так далее. Вопрос в том, какой самый лучший / самый элегантный / самый надежный способ организовать все это. То, что я обычно делаю, это наличие менеджера нагрузки, который сообщает
дочерние объекты, чтобы начать загрузку, а затем контролирует загрузку. Дочерние объекты имеют прослушиватели ошибок ввода-вывода и событий состояния HTTP. Когда все дети загрузили все (с некоторыми возможными сбоями), что-то делается (показываются эскизы или что-то в этом роде).
Я думал, что должен быть лучший способ сделать это, что позволило бы мне, возможно, использовать предложения throw
при возникновении ошибок. Throwing
что-то от слушателя, конечно, не принесет много пользы. Так что делать. Наличие локальных флагов в дочерних объектах и прерывание, если что-то не работает или что?
Я использую AS3, но вопрос должен быть почти таким же для других языков, по крайней мере для объектно-ориентированных.
Просто чтобы прояснить, я не ищу какой-либо программный код, просто общие идеи по шаблону проектирования. Я также понимаю, что из-за асинхронной нагрузки я привязан к обработке событий, по крайней мере, в дочерних объектах.