Actionscript 3 异步加载工厂

Actionscript 3 异步加载工厂,actionscript-3,asynchronous,actionscript,factory,Actionscript 3,Asynchronous,Actionscript,Factory,我有一个单例工厂类,它在第一次实例化时(异步)从文件加载一些信息 这些信息对工厂生产的产品很重要 我的问题是关于如何处理这样一个事实,即工厂用户可能会在工厂加载完信息文件之前(也可能在之后)请求产品 最重要的是,要用优雅的方式来做。我刚刚找到了一对解决方案,我在下面解释,以供将来参考 解决方案编号1: 在工厂中设置3种方法:OrderProduct、Product、PickUpOrder 用户首先调用OrderProduct,工厂保存订单并返回OrderId 用户在工厂上为事件“producte

我有一个单例工厂类,它在第一次实例化时(异步)从文件加载一些信息

这些信息对工厂生产的产品很重要

我的问题是关于如何处理这样一个事实,即工厂用户可能会在工厂加载完信息文件之前(也可能在之后)请求产品


最重要的是,要用优雅的方式来做。

我刚刚找到了一对解决方案,我在下面解释,以供将来参考

解决方案编号1:

在工厂中设置3种方法:OrderProduct、Product、PickUpOrder

用户首先调用OrderProduct,工厂保存订单并返回OrderId

用户在工厂上为事件“producted”设置事件侦听器,此事件的回调方法将检查生产订单是否等于用户从调用OrderProduct获得的OrderId,如果是,则使用给定的OrderId调用PickUpOrder,以切换工厂返回产品

设置侦听器后,用户调用将生成

product调用检查factory是否已完成加载,如果已完成加载,则遍历所有订单列表,为给定订单生产产品,并使用生产产品的OrderId发送事件“Producted”

工厂在完成信息文件加载后也会调用Product

解决方案编号2:

如果幸运的是,用户知道一个唯一的产品id,我们可以扭曲第一个解决方案,使其更加优雅

我们首先将侦听器设置为侦听,就像我们在解决方案1中所做的那样,但是现在侦听器将根据产品id检查事件参数上的orderId,他将请求

然后使用产品id调用OrderProduct,工厂将在内部使用该产品id作为第一个解决方案的OrderId


我认为解决方案2更好,因为它也支持多线程,不过我很乐意讨论对我的方法的批评,或者更好的解决方案


祝大家节日快乐

当你的应用程序启动时,第一件事就是给你打电话。你甚至可以在这一点上添加一个监听器,这样你的应用程序只有在数据加载时才能继续运行。在我看来,这更优雅、更高效。同意你的看法。但由于工厂生产的产品仅用于特定的应用部分。我甚至没有考虑过。在我看来,在你需要之前最好不要装东西。