工厂用异步加载

时间:2014-07-19 21:46:31

标签: actionscript-3 asynchronous actionscript factory

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

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

我的问题与如何处理工厂用户可能在工厂加载信息文件之前(以及之后)请求产品的事实有关。

最重要的是,以优雅的方式做到这一点。

1 个答案:

答案 0 :(得分:0)

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

解决方案编号1:

在工厂中设置3个方法:OrderProduct,Produce,PickUpOrder。

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

用户在工厂为事件“Produced”设置事件监听器,该事件的回调方法将检查生成的订单是否等于用户从调用OrderProduct获得的OrderId,如果是,则调用具有给定OrderId的PickUpOrder,工厂将退回产品。

设置监听器后,用户调用Produce。

产品调用检查工厂是否已完成加载,如果是,则遍历所有订单列表,生成给定订单的产品,并使用OrderId为生产的产品分派事件“Produced”。

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

解决方案编号2:

如果我们很幸运,用户知道一个独特的产品ID,我们可以扭转第一个解决方案,使其更优雅。

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

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


在我看来,解决方案2更好,因为它也支持多线程,但我很乐意讨论对我的方法或更好的解决方案的批评。

每个人都快乐的一天!