2010-08-10 2 views
2

Принимая следующий код из here, с укороченной версии в нижней части, существует этот прокси-сервер:Асинхронный 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) 

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

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

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

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

ответ

0

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

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

Еще одна идея. Вы можете попробовать идею за Utility - AS3/Startup Manager.

Смежные вопросы