Live Object(活性物件)

2021-07-25 08:45:04 字數 1216 閱讀 2032

live object(活性物件)有兩種,一種reference(參照物件),一種composite(合成物件),後者實際上是由前者作為原語來構成的,所以弄明白reference,就可以自己構建composite的活性物件。

而reference objects又有三種:

2. repository,倉庫物件。這種物件的定義被內建到其他物件例如repositories和folders裡面。所以如果要例項化這些物件,需要先和他們的「倉庫」進行溝通。

3. parameter,引數物件。這種物件被用作定義composite物件時傳遞的引數,

拋開引數物件不談,前兩種都是比較容易了解和使用的,它們都必須有乙個唯一的id,並以xml的attribute "id"來表示。

predefined objects的id格式:

namespaceid`

namespaceversion:componentid`componentversion

注意:高亮的 "`" (back-apostrophe)和 ":" (colon)是分割符。"libraryid"(namespaceid)和 "componentid" 是128-bit十六進製制數,分別用於標識物件定義的命名空間和被指定的元件id。而"namespaceversion" 和 "componentversion" 則由64-bit十進位制數來編碼。

這裡的"namespace",典型代表就是.net library,但是乙個namespace也可能跨越多個library。我們假設,在一些全域性性的目錄中,為了防止衝突,一些namespace的號 碼應該被預留,儘管目前簡單地使用類似vs裡面隨機產生的guidid也是足夠應付的。在乙個特定的namespace裡面,component id可以是任何值。我們假設namespace和component的版本是向後相容的。

id命名中的四個部分都可以是空值,也就是「0」,其中namespace "0" 被保留為執行時(runtime)。因此,乙個「0`0:c69d58a635524737981e4c8ab9279edd`0」的id可以被簡寫 成"c69d58a635524737981e4c8ab9279edd",這代表著乙個在任意版本的活性物件執行時中定義的任意版本的元件,其名字為 「c69d58a635524737981e4c8ab9279edd」。其實在命名時,也可以忽略關於namespace版本資訊的指定,這樣乙個 如"x:y"的id可以被翻譯為"活性物件執行時中版本高於y的元件x", "x:y`z" 則代表"namesapce x下版本高於z的元件y"。

Java 教程(併發活性)

併發應用程式及時執行的能力被稱為其活性,本節描述了最常見的活性問題,死鎖,並繼續簡要描述其他兩個活性問題,飢餓和活鎖。死鎖描述了兩個或多個執行緒永遠被阻塞,等待彼此的情況,這是乙個例子。alphonse和gaston是朋友,是禮貌的忠實信徒,禮貌的乙個嚴格規則是,當你向朋友鞠躬時,你必須一直鞠躬,直...

Java併發程式設計 5 活性

不正確的使用互斥技術會導致各種活性問題。所謂程式活性是指併發應用程式能夠按時完成動作的能力。常見活性問題主要有死鎖 deadlock 飢餓 starvation 和活鎖 livelock 死鎖 死鎖是指多個執行緒為競爭某些共享資源而陷入無限等待狀態。假如有條禮貌規則是,當你向朋友鞠躬時,你要一直彎著...

日本 花業界 活性化

現在 日本 経済 誤 花 関連情報 見 機能 紙 優 紙 追 開 関連 情報 內容 多 新聞 以上 數 出 訪問 利得予期 富 割 貴重 情報 豊富 今日 日本 花 私 情報 見 私 花 知 豊富 情報 富 測定 gdp gdp 人 日本 人 花 愛 豊 花 楽 金 人 花 楽 通 立 誰 美 花 ...