3

此处获取以下代码,从底部的缩短版本中,存在此代理:

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 文档,它说:

代理可能只是管理对本地数据对象的引用,在这种情况下,与其交互可能涉及以同步方式设置和获取其数据。

代理类也用于封装应用程序与远程服务的交互以保存或检索数据,在这种情况下,我们采用异步的习惯用法;在代理上设置数据(或调用方法)并在代理从服务中检索数据时侦听要发送的通知。

如果是这种情况,当我要检索昂贵且耗时的数据时,如何让我的代理异步执行?

4

1 回答 1

0

你的问题真的很有趣。我刚刚研究了 PureMVC,这只是我的想法,没有得到证实。

在 puremvc.patterns.observer 中使用 Notifier 怎么样?或者更简单的方法,在您的异步数据检索函数中,在处理完成时发送通知:) 这种方式听起来很像 PureMVC 方式:通过通知进行通信。我猜唯一需要考虑的是确保通知机制是线程安全的。

还有一个想法。你可以试试Utility-AS3/Startup Manager背后的想法。

于 2011-02-16T10:24:03.343 回答