元件拓撲

這些關係如下:

  • 元件例項樹狀結構:說明元件例項如何組合在一起 (其父項子項關係)。
  • 能力轉送圖表:說明元件執行個體如何取得使用其他元件執行個體發布的功能 (供應者-消費者關係)。

元件執行個體

元件執行個體是元件的獨特具現。

在情境明確時,您通常可以交替使用「元件」和元件執行個體這兩個詞彙。舉例來說,「啟動元件執行個體」比「啟動元件」更為精確,但您可以輕易推斷「啟動元件」需要先建立該元件的例項,才能啟動例項。

雖然元件是由網址識別,但元件執行個體則是由別名識別。因此,同一個元件的不同執行個體會共用相同的網址,但具有不同的別名。

元件執行個體樹狀結構

元件例項樹狀結構會說明元件如何組合在一起,以製作更複雜的元件。

使用階層式組合時,父項元件會建立其他元件的執行個體,稱為「子項」。子項會屬於父項,並依附於父項,以便取得執行所需的功能。同時,父項會透過功能路由取得子項公開的功能存取權。

您可以透過下列兩種方式建立子項:

  • 靜態:父項會在自己的元件宣告中宣告子項的存在。如果在父項軟體的更新版本中移除子項宣告,子項就會自動銷毀。
  • 動態:父項會使用 Realm 架構通訊協定,將子項新增至父項宣告的元件集合。父項會以類似方式銷毀子項。

元件拓撲以樹狀結構表示這些父項子項關係。


元件執行個體樹狀結構的圖表

Monikers

別名會使用拓樸路徑,在元件樹狀結構中識別特定元件執行個體。根據路徑名稱的使用方式和描述的關係類型,別名分為三種類型:絕對、相對和子項。

詳情請參閱別名說明文件


元件執行個體樹狀結構 (含別名) 的圖表

運作範圍

realm是元件執行個體樹狀結構的子樹狀結構。每個領域都由元件執行個體建立,並包含該例項的所有子項及其後代。換句話說,realm 會表示元件例項的階層組合

在元件組態中,Realm 是重要的封裝邊界。每個領域的根目錄都會收到特定權限,以影響元件的行為,例如:

  • 宣告功能如何流入、流出及在領域內流動。
  • 繫結至子元件,以便存取其功能。
  • 建立及銷毀子元件。

詳情請參閱 realms 說明文件


元件領域圖

封裝

元件可做為封裝邊界。除非透過 expose 宣告明確允許,否則功能無法逃離元件的realm

孩子永遠都會依賴父母,他們無法重新擁有父母,也無法比父母長壽。父項遭到刪除時,所有子項也會遭到刪除。

這個模型類似於以物件導向程式設計語言中的組合

詳情請參閱 realms 說明文件


元件執行個體封裝的圖表

能力轉送圖表

功能轉送圖表說明元件如何取得使用元件執行個體樹狀結構中其他元件公開提供的功能。如要讓元件執行個體提供的能力可供消費者元件執行個體使用,兩者之間必須有功能路徑。這類能力路徑是由 元件宣告中的 useofferexpose 宣告決定。

詳情請參閱能力轉送說明文件


能力轉送圖表