代码之家  ›  专栏  ›  技术社区  ›  Fernando Briano

灵活的模块化

  •  1
  • Fernando Briano  · 技术社区  · 15 年前

    我正在为flex/air开发一个相当大的应用程序。我们正在使用 GraniteDS and Tide 与JavaEE服务器的模型进行交互。

    我一直在读模块化和flex中的模块。应用程序已经构建好了,我正在想办法重新设计一些类和部件。从我目前所读到的,我了解到模块是一个不同的SWF,可以动态加载。大多数教程/文档都面向使用flex或air而不是真正的开发人员的flash“程序员”,因此很难获得在线资源。

    我还不能理解的是如何在这个模块下封装ActionScript类或MXML视图。

    我把一些代码分成了库。例如,Granite生成的代码在“服务器”库中。但我想用它的调节器、控制器和视图来分离逻辑的各个部分。模块是前进的道路吗?为了更好地了解构建我的体系结构,是否有类似教程的“面向假人的模块”或“面向程序员的头一个Flex模块”?何时选择库,何时选择模块?

    我使用的是flex 3.5,将来迁移到flex 4还很远,所以没有flex 4的答案,谢谢!

    1 回复  |  直到 15 年前
        1
  •  1
  •   Ryan Guill    15 年前

    模块是将UI封装到不相互依赖的不同部分的答案。把它们想象成应用程序内部的应用程序。

    如果您想要封装“代码”,也就是非UI操作脚本,那么您只需要类和类包。您还可以将代码打包到一个SWC中,它只是您可以在多个项目中包含的代码的编译版本(我认为这就是您所说的库)。

    您不希望创建只包含非UI代码的模块。您不希望使用模块来分离应用程序中的模型/视图/控制器。

    如果您有应用程序的一部分,那么在大多数情况下,它完全独立运行,除了传递一些信息外,它对应用程序的其余部分没有真正的依赖性,那么它对模块来说是有意义的。

    我们使用模块的地方主要是针对具有不同部分的应用程序,其中您一次只能在一个部分中工作。其他部分不需要占用资源,因此我们在模块中有不同的部分,并根据需要加载/卸载它们。

    这有帮助吗?

    编辑以回复以下评论:

    我指的是图书馆 项目,在其中封装 分类并使用SWC。你能拥有 flex项目中的这些库? (我使用单独的库项目 每个新图书馆)。

    是的,您可以在您的flex项目中使用这些swc(代码库)。只需将SWC放到flex/flash builder项目的lib目录中,代码就会自动添加到类路径中。只要确保单个SWC中的代码所需要的一切都在该SWC中。不要让一个SWC依靠另一个SWC工作。

    推荐文章