!--a11y-->
Public Parts 
Die Schnittstellen einer Komponente werden als ihre Public Parts bezeichnet. Ein Public Part umfasst eine Liste von Entwicklungsobjekten, die anderen Komponenten zur Verfügung gestellt werden. Alle anderen Bestandteile einer Komponente bleiben verborgen.
Wie bereits erwähnt verhält sich eine Komponente wie eine “Black Box“, das heißt zunächst sind ihre inneren Bestandteile nicht nach außen sichtbar. Ein Public Part listet nun eine Reihe von Entwicklungsobjekten auf, die für andere Komponenten sichtbar sein sollen. Eine Komponente kann beliebig viele Public Parts definieren, die sich durch eindeutige Namen unterscheiden. Ein bestimmtes Entwicklungsobjekt kann dabei in mehr als einem Public Part genannt werden. Dies erlaubt die Zusammenstellung von Public Parts nach funktionalen Gesichtspunkten.
Eine Komponente kann ihre Abhängigkeit zu einer anderen Komponente auf einen bestimmten Public Part dieser Komponente einschränken.

Im Allgemeinen sollten Sie bei der Deklaration von Abhängigkeiten möglichst nur die Public Parts auswählen, die Ihre Komponente auch tatsächlich benützt. Dies erleichtert bei Änderungen an der verwendeten Komponente die Abschätzung, welche Auswirkungen die beabsichtigte Änderung auf andere Komponenten hat.

In der nachfolgenden Abbildung ist Komponente X auf derselben Hierarchie-Ebene wie Komponente Y: Daher darf X eine Abhängigkeit zu Y deklarieren und sich auf die Entwicklungsobjekte im Public Part von Y beziehen.
Darüber hinaus deklariert Komponente X eine Abhängigkeit zu einem der Public Parts von Komponente B: Dies ist erlaubt, da B eine Top-Level-DC ist. Auf der anderen Seite sieht B die Public Parts der Komponenten X und Y nicht, da sie im Inneren von A liegen.

Sichtbarkeit von Public Parts. Abhängigkeiten von Public Parts.
Wie bereits erwähnt, dürfen innere Komponenten zu ihrer umschließenden Komponente keine Abhängigkeiten erklären. Daher dürfen innere Komponenten auch keine Abhängigkeiten zu Public Parts ihrer umschließenden Komponente deklarieren.

Innere Komponenten sehen ihre umschließende Komponente nicht: Die DCs X, Y und Z erhalten niemals Zugriff auf den Public Part von DC A, weder implizit noch explizit.
Eine äußere Komponente kann eine Abhängigkeit zur einer ihrer inneren Komponente deklarieren, indem sie sich auf einen Public Part der inneren Komponente bezieht. Nur die Elemente, die in den Public Parts der inneren Komponente enthalten sind, können verwendet werden.
Public Parts können nicht dazu verwendet werden, die Sichtbarkeit eines Entwicklungsobjekts über die Regeln der zugrunde liegenden Technologie hinaus zu erweitern. So bleibt beispielsweise eine private Java Klasse auch dann privat, wenn sie als Teil eines Public Part genannt wird. Auf der anderen Seite ist eine public Klasse selbst dann für andere Komponenten unsichtbar, wenn sie nicht in irgendeinen Public Part ihrer Komponente aufgenommen wird.
Eine Komponente kann Entwicklungsobjekte aus Public Parts einer inneren Komponente in ihren eigenen Public Parts veröffentlichen. Dieser Vorgang wird als Propagierung von Public Parts bezeichnet. Auf diese Weise ist es möglich, Funktionalität innerer Komponenten für die Außenwelt verfügbar zu machen. Ohne diesen Mechanismus, wäre die Funktionalität der inneren Komponenten nicht nutzbar. Weitere Informationen finden Sie unter Entity-References ändern.
Eine Komponente kann einen Public Part einer inneren Komponente als Ganzes, oder nur bestimmte Teile davon veröffentlichen, indem sie Entwicklungsobjekte in ihre eigenen Public Parts aufnimmt. Dies ermöglicht es der Komponente, die Funktionalität ihrer inneren Komponenten neu anzuordnen, zu erweitern oder einzugrenzen, und deren Funktionalität mit ihrer eigenen zu kombinieren.

In der nachfolgenden Abbildung werden die Public Parts pp (1) und pp (2) A von DC A aus mehreren Quellen zusammengesetzt:
· Public Part pp (1) enthält Objekte aus dem Public Part der inneren DC X.
· Public Part pp (2) enthält Objekte aus den beiden inneren DCs X und Y.
DC B ist abhängig von beiden Public Parts von A. Die Public Parts von X und Y sind für B nicht sichtbar.

Zusammengesetzte Public Parts einer äußeren Komponente.