0

J'ai créé quelques classes d'événements et de commandes à utiliser dans mes projets Cairngorm.Quelle est la meilleure façon de concevoir des classes Cairngorm étendues à partager entre applications?

Par exemple, j'ai créé une classe qui étend com.adobe.cairngorm.control.CairngormEvent qui me permet de définir des fonctions de rappel à la fin ou l'échec de la commande correspondante. Pour ce faire, j'ai également dû créer une nouvelle classe qui implémente com.adobe.cairngorm.commands.ICommand que j'étend pour toutes les commandes de mes projets.

Maintenant, je veux utiliser ces deux classes dans toutes mes applications Cairngorm. Quelle est la meilleure façon de procéder? Devrais-je simplement modifier la source Cairngorm pour CairngormEvent et ICommand et recompiler le Cairngorm MVC (est-ce encore possible)? Ou ajouter mes deux classes à la source Cairngorm et recompiler le Cairngorm MVC? Ou devrais-je simplement les ajouter à une bibliothèque partagée?

J'ai choisi la troisième option pour l'instant, mais cela nécessite que je fasse référence à la bibliothèque Cairngorm dans ma bibliothèque et dans chaque projet. Je me demande s'il existe une meilleure pratique et quels sont les avantages.

Merci.

Répondre

3

Toutes les options que vous proposez fonctionneront. Cependant, je suggérerais de laisser les sources de Cairngorm et de CFC en l'état et de créer un CFC distinct avec vos classes. Vous ne voulez pas patcher les sources Cairngorm chaque fois qu'ils publient une nouvelle version.

Vous avez 2 options pour la compilation de votre SWC personnalisé (dans les options de chemin de génération des bibliothèques référencées):

  1. Extérieurement référence Cairngorm lib: vous devrez alors relier à la fois le Cairngorm SWC et votre SWC personnalisé dans vos projets.

  2. Fusion Cairngorm lib dans votre SWC: vous aurez seulement besoin de référencer votre lib si vous assurez toutes les classes Cairngorm sont également compilées en elle. Seules les classes Cairngorm que vous référencez (en les étendant par exemple) seront fusionnées dans votre SWC personnalisé. Vous pouvez forcer une inclusion des autres classes Cairngorm en les référençant quelque part dans votre code.

Personnellement, je préfère l'option 1 puisque c'est la manière la plus propre de la séparation des bibliothèques de code et il vous permet d'échanger/mettre à jour les versions de Cairngorm sans avoir à recompiler votre bibliothèque.

Questions connexes