16.1 什麼是Eclipse context?java
在啓動一個Eclipse applicaiton 的時候,Eclipse 運行時 會建立一個 實現了 IEclispeContext 接口的 Object 對象,這個Object對象被叫作 context 或者 Eclipse context數據結構
context 相似與Map數據結構,某個對象能夠放在某個key下,key 是一個String類型,通常狀況下使用全類名做爲 key . key 對應的value 能夠被 注入到 其餘 objects 上 。和Map不一樣的是, Eclipse context 是具備層級的,而且 能夠動態計算 vaues app
根據你的Application model 的結構,不一樣的上下文對象相互關聯造成一個具備層級關係的樹結構 ,最頂層 的是Application context .spa
以下圖:orm
在上下文樹結構中。Objects 能夠被添加到不一樣的層級上,容許相同的key 上添加不一樣的Objects.對象
16.2 哪些 model elements 擁有 本身的 context?接口
下面這些model elements 實現了 MContext 接口,擁有本身的context:生命週期
MApplicationip
MWindow內存
MPerspective
MPart
MPopupMenu
16.3 Eclipse context 的生命週期
Eclipse framework 在啓動時根據 Application model 建立 context 對象 。默認狀況下,context 包含一些預約義的 keys .
Eclipse platform 自動建立 model objects 和 基於 class URL 的object .經過遍歷 帶有 custom context 的 model element ,Eclipse framework 決定 哪些objects 在 local context 是可見的。若是須要,Eclipse platform 將會根據 model elements 中的 Class URL 屬性 建立 所須要的 java objects.
在Eclipse context 樹結構的初始建立以後,Eclipse framework或application 能夠更改存儲在context中的鍵值對。
context 被初始化在內存中,當 applicaiton 中止的時候, context 對象被銷燬。