【问题标题】:What is the best way to architect extended Cairngorm classes to be shared across applications?构建扩展 Cairngorm 类以跨应用程序共享的最佳方式是什么?
【发布时间】:2010-10-31 15:56:29
【问题描述】:

我创建了一些 Event 和 Command 类用于我的 Cairngorm 项目。

例如,我创建了一个扩展 com.adobe.cairngorm.control.CairngormEvent 的类,它允许我在相应命令完成或失败时设置回调函数。为此,我还必须创建一个新的类来实现 com.adobe.cairngorm.commands.ICommand,我为我的项目中的所有命令扩展它。

现在,我想在我的所有 Cairngorm 应用程序中使用这两个类。做这个的最好方式是什么?我是否应该只编辑 CairngormEventICommand 的 Cairngorm 源代码并重新编译 Cairngorm MVC(这是否可能)?或者将我的两个类添加到 Cairngorm 源代码并重新编译 Cairngorm MVC?还是我应该将它们添加到共享库中?

我现在选择了第三个选项,但这需要我在我的库和每个项目中都引用 Cairngorm 库。我想知道是否有更好的做法以及有什么好处。

谢谢。

【问题讨论】:

    标签: apache-flex actionscript-3 model-view-controller architecture cairngorm


    【解决方案1】:

    您提出的所有选项都将起作用。但是,我建议保留 Cairngorm 源和 SWC 原样,只为您的类创建一个单独的 SWC。您不希望每次发布新版本时都修补 Cairngorm 源代码。

    您有 2 个选项来编译您的自定义 SWC(在引用库的构建路径选项中):

    1. 外部引用 Cairngorm 库:然后您需要将 Cairngorm SWC 和您的自定义 SWC 链接到您的项目中。

    2. 合并 Cairngorm 库到您的 SWC:如果您确保所有 Cairngorm 类也都编译到其中,您只需要引用您的库。只有您引用的 Cairngorm 类(例如通过扩展它们)将被合并到您的自定义 SWC 中。您可以通过在代码中的某处引用它们来强制包含其他 Cairngorm 类。

    我个人更喜欢选项 1,因为这是分离代码库的最简洁方式,它允许您交换/升级 Cairngorm 的版本,而无需重新编译您的库。

    【讨论】:

      猜你喜欢
      • 2010-09-07
      • 2014-03-25
      • 1970-01-01
      • 2010-11-01
      • 1970-01-01
      • 2018-02-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多