這些關係如下:
- 元件執行個體樹狀結構:說明元件執行個體如何一起組合 (其父項-子項關係)。
- 能力轉送圖表:說明元件執行個體如何取得權限,以使用其他元件執行個體 (其提供者關係) 發布的功能。
元件執行個體
當結構定義很清楚時,您通常會交替使用字詞元件和元件執行個體。舉例來說,談論「啟動元件執行個體」可能會比「啟動元件」更精確,但您可以輕易推論要「啟動元件」需要先建立該元件的執行個體,才能啟動執行個體。
儘管元件是以「網址」識別,但元件執行個體是用「一模類」來識別。同一個元件的不同執行個體會共用相同的網址,但含有不同的煙草製品。
元件執行個體樹狀結構
元件執行個體樹狀結構表示如何組合元件,進而構成更複雜的元件。
使用階層式組合時,父項元件會建立其他元件的例項,這些元件稱為「子項」。子項例項屬於父項,並透過父項提供執行所需的功能。與此同時,父項可透過「功能性轉送」存取其子項所公開的功能。
建立子項的方式有兩種:
- 靜態:父項會在其元件宣告中宣告子項的存在。如果父項軟體的更新版本中移除子項宣告,則子項宣告會自動刪除。
- 動態:父項使用 Realm 架構通訊協定,將子項新增至父項宣告的元件集合。父項會以類似的方式刪除子項。
蒙尼克爾
「Moniker」使用拓撲路徑識別元件樹狀結構中的特定元件執行個體。Monikers 有三種類型,具體取決於路徑名稱的使用方式和描述的關係類型:絕對、相對和子項。
詳情請參閱 Monikers 說明文件。
領域
「realm」是元件執行個體樹狀結構的子樹狀結構。每個領域均由元件執行個體根根層級,包含該執行個體的所有子項及其子系。換句話說,領域能夠表示元件執行個體的階層組合。
領域是元件拓撲中重要的「封裝」界線。每個領域的根目錄會獲得特定權限來影響元件的行為,例如:
- 宣告功能如何在領域內流入、流出和流出。
- 繫結至子項元件,以存取其功能。
- 建立及刪除子項元件。
詳情請參閱領域說明文件。
封裝
元件可做為封裝界線。除非公開宣告明確允許,否則功能無法逸出元件的「運作範圍」。
子項永遠取決於其父項;他們無法更改父項,而且年資不能超過其父項。當父項遭到刪除時,會成為其所有子項。
詳情請參閱領域說明文件。
能力轉送圖表
功能轉送圖表說明瞭元件如何取得存取權,以便使用元件執行個體樹狀結構中其他元件公開及提供的功能。如要讓元件執行個體提供的能力可供消費者元件執行個體使用,兩者之間必須有能力轉送路徑。這類能力路徑是由元件宣告中的 use
、offer
和 expose
宣告決定。
詳情請參閱功能轉送說明文件。