我已经创建了一些在我的Cairngorm项目中使用的Event和Command类。
例如,我创建了一个扩展 com.adobe.cairngorm.control.CairngormEvent 的类,它允许我在相应命令完成或失败时设置回调函数。为了实现这一点,我还必须创建一个实现 com.adobe.cairngorm.commands.ICommand 的新类,我为项目中的所有命令扩展。
现在,我希望在我的所有Cairngorm应用程序中使用这两个类。做这个的最好方式是什么?我是否应该编辑 CairngormEvent 和 ICommand 的Cairngorm来源并重新编译Cairngorm MVC(甚至可能)?或者将我的两个类添加到Cairngorm源并重新编译Cairngorm MVC?或者我应该将它们添加到共享库中?
我现在选择了第三个选项,但这要求我在我的库和每个项目中引用Cairngorm库。我想知道是否有更好的做法以及有什么好处。
感谢。
答案 0 :(得分:3)
您建议的所有选项都有效。但是,我建议保留Cairngorm源和SWC,只需在您的类中创建一个单独的SWC。您不希望每次发布新版本时都修补Cairngorm源。
您有2个选项可用于编译自定义SWC(在引用库的构建路径选项中):
外部参考 Cairngorm lib:您需要将Cairngorm SWC和自定义SWC链接到您的项目中。
将Cairngorm lib 合并到您的SWC :如果您确保所有Cairngorm类都已编译到其中,您只需要引用您的lib。只有您引用的Cairngorm类(例如通过扩展它们)才会合并到您的自定义SWC中。您可以通过在代码中的某处引用它们来强制包含其他Cairngorm类。
我个人更喜欢选项1,因为这是分离代码库的最简洁方法,它允许您交换/升级Cairngorm版本,而无需重新编译库。