Каков наилучший способ создания расширенных классов Cairngorm для совместного использования между приложениями? - PullRequest
0 голосов
/ 05 июня 2009

Я создал несколько классов Event и Command для использования в моих проектах Cairngorm.

Например, я создал класс, который расширяет com.adobe.cairngorm.control.CairngormEvent , который позволяет мне устанавливать функции обратного вызова при завершении или сбое соответствующей команды. Для этого мне также пришлось создать новый класс, который реализует com.adobe.cairngorm.commands.ICommand , который я расширяю для всех команд в моих проектах.

Теперь я хочу использовать эти два класса во всех моих приложениях Cairngorm. Каков наилучший способ сделать это? Должен ли я просто отредактировать исходный код Cairngorm для CairngormEvent и ICommand и перекомпилировать Cairngorm MVC (это вообще возможно)? Или добавить два моих класса в исходный код Cairngorm и перекомпилировать Cairngorm MVC? Или мне просто добавить их в общую библиотеку?

На данный момент я выбрал третий вариант, но для этого необходимо, чтобы я ссылался на библиотеку Cairngorm как в своей библиотеке, так и в каждом проекте. Мне интересно, есть ли лучшая практика и каковы преимущества.

Спасибо.

1 Ответ

3 голосов
/ 05 июня 2009

Все предложенные вами варианты будут работать. Однако я бы предложил оставить исходники Cairngorm и SWC как есть и просто создать отдельный SWC с вашими классами. Вы не хотите исправлять источники Cairngorm каждый раз, когда они выпускают новую версию.

У вас есть 2 варианта компиляции вашего пользовательского SWC (в параметрах пути сборки указанных библиотек):

  1. Внешняя ссылка библиотека Cairngorm: вам нужно будет связать и Cairngorm SWC, и ваш пользовательский SWC с вашими проектами.

  2. Слияние библиотеки Cairngorm в SWC : вам нужно будет ссылаться на вашу библиотеку, только если вы убедитесь, что все классы Cairngorm также скомпилированы в нее. Только те классы Cairngorm, на которые вы ссылаетесь (например, расширяя их), будут объединены в ваш пользовательский SWC. Вы можете принудительно включить другие классы Cairngorm, ссылаясь на них где-то в вашем коде.

Лично я предпочитаю вариант 1, так как это самый чистый способ разделения библиотек кода, и он позволяет вам менять / обновлять версии Cairngorm без необходимости перекомпиляции вашей библиотеки.

...