我使用 Flex 构建 Adobe Air 应用程序。在你介绍了一些东西之后,如国家列表和国籍列表ArrayCollection
格式的代码变得混乱和难以置信地长。
是否可以将 ArrayCollection 放入同一个 Flex 项目中的单独文件中,然后在需要时或在编译时加载它们?
是的;在 ActionScript 中创建一个扩展 ArrayCollections 的类,然后对 ArrayCollection 的元素进行硬编码。 也许在你的新类的构造函数中。
您应该能够在任何可以使用 ArrayCollection 的地方使用此新类。
有关在 ActionScript 中创建类的详细信息。
因此,您实现了一个显示/使用大量数据的 Air 应用程序。您不想对此数据进行硬编码,也不想仅仅为了将数据移动到类之外而扩展 ArrayCollection。这种最灵活的解决方案是将数据填充到XML文件中,将其编译到应用程序中,并实现解析器以从数据创建对象(或更好的类实例(。这应该由代理、适配器或您要使用的模式隐藏。
当您拥有此功能时,您可能会重用它,并且只需要实现对数据源的不同适配器,例如从文件系统异步加载数据(或从打包的 Air 应用程序中作为资产加载(,从数据库获取数据,该数据库随 Air 一起提供或使用(Web(服务(JSON、XML、 AMF(。这可能是一个很好的练习,可以让您的应用程序更加模块化并使其更易于测试。
在继承方面,你应该偏爱组合而不是继承。这是设计应用程序时常见的最佳做法。