0

Ich habe einige Event- und Command-Klassen für die Verwendung in meinen Cairngorm-Projekten erstellt.Was ist der beste Weg, um erweiterte Cairngorm-Klassen für die gemeinsame Nutzung in verschiedenen Anwendungen zu entwerfen?

Zum Beispiel habe ich eine Klasse, die com.adobe.cairngorm.control.CairngormEvent erstreckt, die ich Callback-Funktionen nach Beendigung oder Ausfall des entsprechenden Befehls festlegen können. Um dies zu erreichen, musste ich auch eine neue Klasse erstellen, die com.adobe.cairngorm.commands.ICommand implementiert, die ich für alle Befehle in meinen Projekten erweitere.

Jetzt möchte ich diese beiden Klassen in all meinen Cairngorm-Anwendungen verwenden. Was ist der beste Weg, dies zu tun? Sollte ich nur die Cairngorm Quelle für CairngormEvent und ICommand bearbeiten und den Cairngorm MVC neu kompilieren (ist das überhaupt möglich)? Oder füge meine zwei Klassen der Cairngorm-Quelle hinzu und kompiliere den Cairngorm MVC neu? Oder sollte ich sie nur zu einer gemeinsamen Bibliothek hinzufügen?

Ich habe die dritte Option für jetzt gewählt, aber das erfordert, dass ich die Cairngorm-Bibliothek sowohl in meiner Bibliothek als auch in jedem Projekt referenziere. Ich frage mich, ob es eine bessere Praxis gibt und was die Vorteile sind.

Danke.

Antwort

3

Alle von Ihnen vorgeschlagenen Optionen funktionieren. Ich würde jedoch vorschlagen, die Cairngorm Quellen und SWC wie sie sind zu verlassen und nur eine separate SWC mit Ihren Klassen zu erstellen. Sie möchten die Cairngorm-Quellen nicht jedes Mal neu patchen, wenn sie eine neue Version veröffentlichen.

Sie haben 2 Möglichkeiten für die benutzerdefinierte SWC (in den Build-Pfad Optionen der referenzierten Bibliotheken) Kompilieren:

  1. Äußerlich die Cairngorm lib Referenz: Sie werden dann sowohl die Cairngorm verknüpfen müssen SWC und Ihre benutzerdefinierte SWC in Ihre Projekte.

  2. Merge die Cairngorm lib in die SWC: Sie benötigen nur Ihre lib verweisen, wenn Sie alle Cairngorm Klassen stellen Sie sicher, auch in sie zusammengestellt. Nur die Cairngorm-Klassen, auf die Sie verweisen (indem Sie sie beispielsweise erweitern), werden in Ihre benutzerdefinierte SWC-Datei zusammengeführt. Sie können eine Einbindung der anderen Cairngorm-Klassen erzwingen, indem Sie sie irgendwo in Ihrem Code referenzieren.

Ich persönlich bevorzuge die Option 1, da dies der sauberste Weg ist Code-Bibliotheken zur Trennung und ermöglicht es Ihnen Versionen von Cairngorm zu tauschen/aufzurüsten, ohne die Bibliothek neu kompilieren zu müssen.