我正在使用 ActionScript 3 构建一个应用程序,该应用程序:
- 向各种网络服务发出网络请求;
- 在某些界面项上使用动画;
- 接受用户输入,这有时是“愚蠢的”。例如,用户不想再等待网络响应并取消操作。
处理应用程序的所有可能状态以及协调已完成线程(例如 Web 服务请求)的所有回调的最佳实践是什么?
对于一个简单的应用程序,在应用程序的单例中存储一些属性就可以完成这项工作。然而,对于更复杂的应用程序,此类跟踪的复杂性呈几何级数增长。
示例:要启用特定按钮,应完成三个 Web 请求,其中两个是连续的,一个使用前一个请求的结果,两者完成后,应使用幻灯片动画显示一个面板。如果用户决定在网络请求或动画阶段取消该过程,他应该能够通过点击另一个按钮来做到这一点。这种类型的作品有几十个,其逻辑和要求各不相同。到目前为止,我正在使用回调和应用程序的单例变量来完成此操作。回调数量急剧增加。
规划这样一个应用程序变得相当困难。还请建议一种以示意性方式描绘此类逻辑和依赖关系的方法?我还不习惯UML,简单的算法方案对我来说更熟悉。
最佳答案
我的建议是花一些时间研究几个更流行的基于 MVC 的 ActionScript 3.0 框架。这些专门设计用于以高度解耦的方式并使用最佳实践来满足您详细说明的需求。
我一直在使用PureMVC使用几年了,发现它轻便、灵活且直观。它还具有得到令人难以置信的良好支持的优势(其作者大量参与回答论坛上的问题),并且该框架的知识是可转移的,因为它已被移植到各种其他语言( JavaScript very recently )。
一个好的框架将为您做出许多基本的架构决策,并让您可以自由地专注于实现。通过在理解框架方面进行一些预先投资,规划应用程序(例如您所描述的应用程序)变得更加容易,因为您将能够查看需求并立即开始将它们映射到所选框架的各个参与者。
关于actionscript-3 - 异步应用程序设计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10783662/