splitshade
Mitglied
Hallo,
ich versuche mir gerade klar zu machen, was der Unterschied bzw der UseCase für einmal IExecutableExtension und IExecutableExtensionFactory ist.
Meinem Verständnis nach ist das so:
Wenn ich ein Plugin an einen ExtensionPoint "andocke", und hier z.B. konkrete Klassen zu meinem Projekt hinzufügen möchte, mach ich dies ja mit "createExecutableExtension(..)".
Will ich der konkreten Klasse noch Initialisierungsparameter mitgeben, sollte diese das Interface "IExecutableExtension" implementieren, da ich hier deklarativ in xml Paramter angeben kann. Will ich jetzt noch genauere Initialisierungen machen, benutze ich statt
IExecutableExtension eine IExecutableExtensionFactory.
Mein Plugin welches an den ExtensionPoint andockt, liefert also eine IExecutableExtensionFactory, welche mir dann mit der Methode "create()" ein konkretes Object meiner Klasse
Die Implementierung der Methode könnte dann wohl so aussehen
Ist das soweit korrekt? oder hakts irgendwo bei meinem Verständnis?
Über eine AUfklärung würde ich mich freuen.
Gruß
Martin
ich versuche mir gerade klar zu machen, was der Unterschied bzw der UseCase für einmal IExecutableExtension und IExecutableExtensionFactory ist.
Meinem Verständnis nach ist das so:
Wenn ich ein Plugin an einen ExtensionPoint "andocke", und hier z.B. konkrete Klassen zu meinem Projekt hinzufügen möchte, mach ich dies ja mit "createExecutableExtension(..)".
Will ich der konkreten Klasse noch Initialisierungsparameter mitgeben, sollte diese das Interface "IExecutableExtension" implementieren, da ich hier deklarativ in xml Paramter angeben kann. Will ich jetzt noch genauere Initialisierungen machen, benutze ich statt
IExecutableExtension eine IExecutableExtensionFactory.
Mein Plugin welches an den ExtensionPoint andockt, liefert also eine IExecutableExtensionFactory, welche mir dann mit der Methode "create()" ein konkretes Object meiner Klasse
Die Implementierung der Methode könnte dann wohl so aussehen
Code:
public Object create() throws CoreException
{
return new ImplementierungMeinerKlasse(param1,param2,param3);
}
Ist das soweit korrekt? oder hakts irgendwo bei meinem Verständnis?
Über eine AUfklärung würde ich mich freuen.
Gruß
Martin