例如:
- 我发现许多使用Air/Flex编写的软件具有近乎无限的全局变量:-)
- 大多数我看到的软件都不是面向对象的
- 如何优雅地打包异步方法调用?
看看RobotLegs。它包括依赖注入非常灵活,易于快速上手运行。
有很多针对Flex的框架。挑选一个比另一个好是相当费力的事情。选择一个有很多示例和良好社区支持的框架。
ModelLocator是一种反模式;我建议避免使用Cairngorm,而选择更好的框架,比如Spring Actionscript:http://www.springactionscript.org/
我推荐Shashank Tivari的《Advanced Flex》(Friends of Ed出版社),它提供了关于Flex最佳实践的优秀概述。(显然,因为我是新用户,我无法发布链接,但你可以轻松地在谷歌上搜索或在亚马逊上找到它。)
我可以强烈地推荐在Flex中使用Swiz框架(我从未使用过Air,但应该是相同的)。最近,在我的新工作中,我很高兴地接手了一个前任从头开始构建的Flex应用程序,并从零开始,使用我喜欢的任何方法。
我想在Flex中使用一个框架,所以我看了看Cairngorm和Mate,但Swiz因其简单性而脱颖而出。您可以在shiny new wiki中阅读所有内容,但Swiz遵循各种其他框架的依赖注入/控制反转方法(如果您熟悉Spring,则非常相似),但尽可能以最简单的方式进行操作。只需在代码中添加一些元数据,您就可以获得几乎不涉及库的所有好处,并且几乎没有样板代码(与Cairngorm形成鲜明对比)。
从那里开始,推荐的方法是使用演示模型模式(请参见维基中的最佳实践)来将视图与底层数据分离(MVC方法),它也非常好用。Swiz非常棒,因为它不会强制你做出任何设计选择,它只提供了让你按照自己想要的方式进行设计的工具。你可以通过调用executeServiceCall()来“打包”异步服务调用,传递AsyncToken、结果处理程序和故障处理程序,并且你可以传递一个任意对象数组来在请求和结果之间维护引用/状态。它真的是“极其简单”的。
邮件列表上的开发人员也非常乐于助人,通常会在当天回复。我无法感谢他们足够:)。