<extension
point="org.eclipse.core.component.types">
<component
initializer="org.eclipse.ui.part.SiteInitializer"
interface="org.eclipse.ui.part.services.INameable"
implementation="org.eclipse.ui.internal.part.services.NullNameableService"
singleton="true"
/>
</extension>
Das Attribut initializer gibt an, wo die Schnittstelle verwendet wird. So bedeutet z.B. die Zeichenfolge "org.eclipse.ui.part.SiteInitializer", dass die Schnittstelle auf der Site des Abschnitts verwendet wird. Wir könnten "org.eclipse.ui.part.PartInitializer" auch verwendet haben, wenn die Schnittstelle dazu bestimmt wäre, Abschnitte selbst zu implementieren.
Das Attribut interface ist der Name der Schnittstelle. Dies muss exakt mit dem Typ übereinstimmen, den die Komponente in ihrem Konstruktor empfängt. Wenn wir eine Erweiterung erstellen, die Zeichenfolgen liefert und eine Komponente ein Objekt verlangt, wird sie unsere Erweiterung nicht verwenden, selbst wenn es sich um einen kompatiblen Typ handeln würde.
Das Attribut implementation gibt die standardmäßige Implementierung der Schnittstelle an. Es verweist entweder auf eine Komponentenklasse, die die Schnittstelle implementiert, oder eine ComponentFactory, die diese erstellen kann. Weitere Informationen finden Sie im Abschnitt 'ComponentFactory'. Diese Implementierung dient dazu, eine Abhängigkeit zu erfüllen, wenn immer eine Komponente diese Schnittstelle verlangt, und sie kann nicht in ihrem übergeordneten Kontext gefunden werden. Alle Schnittstellen müssen eine Standardimplementierung liefern. Das bedeutet, dass eine korrekt geschriebene Komponente immer in einem gegebenen Bereich funktioniert, ungeachtet dessen, wie viele Abhängigkeiten von ihrem übergeordneten Kontext geliefert werden. Die Implementierung kann das Schnittstellenattribut nicht außer Kraft setzen oder erweitern. Andere Komponenten können von dieser Komponente durch ihre registrierten Schnittstellen abhängig sein, jedoch nicht direkt von der Implementierungsklasse abhängen.
Das AttributSingle zeigt an, ob die Standardimplementierung ein Single ist. Wenn dies 'true' ist, wird eine einzelne Instanz erzeugt und mit allen anderen Komponenten, die sie erfordern, gemeinsam benutzt. Wenn dies 'false' ist, wird eine neue Instanz für jeden Container, der dies erfordert, erstellt. So bedeutet zum Beispiel im Falle von Abschnitten 'singleton=:"false"', dass eine Instanz für jeden Abschnitt erstellt wird.