从下面的“AA>下面的代码,从底部的缩写版本,存在这个代理:
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文档中的here,它说:
代理可能只是管理对本地数据对象的引用,在这种情况下,与其交互可能涉及以同步方式设置和获取其数据。
代理类还用于封装应用程序与远程服务的交互,以保存或检索数据,在这种情况下,我们采用异步习惯用法;在代理上设置数据(或调用方法),并侦听代理从服务检索数据时发送的通知。
如果是这种情况,当我有昂贵且耗时的数据要检索时,如何使代理异步执行?
最佳答案
你的问题真有趣。我刚刚学习了PureMVC,这只是我的想法,没有得到证实。
在puremvc.patterns.observer中使用通知程序怎么样?或者更简单的方法,在异步数据检索函数中,在进程完成时发送一个通知:)这样听起来更像PureMVC的方法:通过通知进行通信。我想唯一需要考虑的是确保通知机制是线程安全的。
还有一个主意。你可以尝试一下Utility - AS3 / Startup Manager背后的想法。