构建扩展的Cairngorm类以跨应用程序共享的最佳方法是什么?

时间:2009-06-05 14:20:34

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

我已经创建了一些在我的Cairngorm项目中使用的Event和Command类。

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

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

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

感谢。

1 个答案:

答案 0 :(得分:3)

您建议的所有选项都有效。但是,我建议保留Cairngorm源和SWC,只需在您的类中创建一个单独的SWC。您不希望每次发布新版本时都修补Cairngorm源。

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

  1. 外部参考 Cairngorm lib:您需要将Cairngorm SWC和自定义SWC链接到您的项目中。

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

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