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 对象被销毁。