這些關係如下:
- 元件執行個體樹狀結構:說明元件執行個體如何組合 (父項與子項關係)。
- 功能轉送圖表:說明元件執行個體如何取得存取權,以便使用其他元件執行個體所發布的功能 (提供者與消費者關係)。
元件執行個體
如果結構定義清楚,您通常可以交替使用字詞元件和元件執行個體。舉例來說,比起「啟動元件」,您可以更精確地表示「啟動元件執行個體」,而不是「啟動元件」。不過您可以輕易推斷,必須先建立該元件的執行個體,才能啟動執行個體。
元件執行個體是透過網址識別,而元件執行個體則是由「捷徑」識別。同一元件的不同執行個體會共用相同的網址,但也有不同的網址。
元件執行個體樹狀結構
元件執行個體樹狀結構指出元件如何組合在一起,以建立更複雜的元件。
使用階層組合時,父項元件會建立其他元件的例項,也就是其「子項」。子項執行個體屬於父項執行個體,並依附於父項,提供執行所需的功能。同時,父項也能透過「功能轉送」存取子項所公開的功能。
兒童可以透過下列兩種方式建立:
- 靜態:父項會在自己的元件宣告中宣告子項存在。如果在父項軟體的更新版本中移除子項宣告,系統會自動刪除子項。
- 動態:父項會使用 Realm 架構通訊協定,將子項新增至父項宣告的元件集合。父項會以類似方式刪除子項。
莫尼克
「Moniker」會使用拓撲路徑識別元件樹狀結構中的特定元件執行個體。魔王有三種類型,具體取決於您的使用方式以及所描述的一種關係:絕對、相對和子項。
詳情請參閱螢幕截圖說明文件。
領域
領域是元件執行個體樹狀結構的子樹狀結構。每個領域都是以元件執行個體為基礎的,其中包含該執行個體的所有子項及其子系。換句話說,運作範圍可以表示元件執行個體的階層結構。
運作範圍是元件拓撲中的重要「封裝」邊界。每個領域的根會獲得特定權限,以影響元件的行為,例如:
- 宣告功能在領域內外的流動方式。
- 繫結至子項元件,以便存取其功能。
- 建立及刪除子項元件。
詳情請參閱運作範圍說明文件。
封裝
元件是封裝界線。除非公開宣告明確允許功能,否則功能無法逸出元件的領域。
子項永遠依附於父項,無法更改父項,也無法讓父項超過父項。父項遭到刪除時,也會成為其所有子項。
這個模型類似於物件導向程式設計語言中的組合。
詳情請參閱運作範圍說明文件。
功能轉送圖表
功能轉送圖表說明元件如何取得存取權,以便使用元件執行個體樹狀結構中其他元件公開及提供的功能。為了讓元件執行個體提供的能力可供消費者元件執行個體使用,則元件執行個體之間必須有能力轉送路徑。這類能力路徑是由元件宣告中的 use
、offer
和 expose
宣告決定。
詳情請參閱功能轉送說明文件。