Асинхронный PureMVC в Python

Если взять следующий код отсюда, из сокращенной версии внизу, существует этот прокси:

class DataModelProxy(puremvc.patterns.proxy.Proxy):
    NAME = "DataModelProxy"

    def __init__(self):
        super(DataModelProxy, self).__init__(DataModelProxy.NAME, [])
        self.realdata = Data()
        self.sendNotification(AppFacade.DATA_CHANGED, self.realdata.data)

    def setData(self, data):
        self.realdata.data = data
        print "setData (model) to", data
        self.sendNotification(AppFacade.DATA_CHANGED, self.realdata.data)

Цитируя отсюда из документации PureMVC Python, он говорит:

Прокси-сервер может просто управлять ссылкой на локальный объект данных, и в этом случае взаимодействие с ним может включать установку и получение его данных синхронным способом.

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

Если это так, как я могу заставить свой прокси-сервер выполнять асинхронно, когда у меня есть дорогостоящие и трудоемкие данные для получения?

1 ответ

Ваш вопрос действительно интересный. Я только что изучил PureMVC, и это только моя мысль, не доказанная.

Как насчет использования Notifier в puremvc.patterns.observer? Или гораздо более простым способом, в вашей функции асинхронного извлечения данных, отправьте уведомление, когда процесс завершится:). Этот способ звучит намного лучше PureMVC-way: общение посредством уведомлений. Думаю, единственная проблема заключается в том, чтобы механизм уведомлений был поточно-ориентированным.

Еще одна идея. Вы можете попробовать идею http://trac.puremvc.org/Utility_AS3_StartupManager.

Другие вопросы по тегам