Eclipse体系结构

        Eclipse基本采用的是Kernel+Core Plugins+Custom Plugins的结构体系,除了Kernel部分外均为Plugin,所以可称为all are plugins,凡是Plugin的部分都是可被替换的。

        Plugin之间通常存在两种关系,一种为依赖,一种为扩展。

        Eclipse的设计风格,Eclipse在设计时有个重要的分层法则,即语言层相关和语言层无关的代码分开(如jdt.core和core),核心与UI分开(如workbench.ui和workbench.core)这两个分层法则.

        在Plugin机制上Eclipse采用的为lazy load的方式,即在调用时才进行实际的启动,采用的为句柄/实体的方式来实现,外部则通过OSGI进行启动、停止等动作,各Plugin则通过BundleContext来进行服务的注册、卸载和调用,这是OSGI的部分实现的简单介绍。

        Eclipse Plugin Framework是采用OSGI Impl+Plugin Extension-Point的方式来共同实现的,实现了Plugin的部署、编写、独立的Classloader和Context、Plugin中Service的注册、Plugin中Service的调用、Plugin的依赖、Plugin的扩展、Plugin生命周期的管理。 

你可能感兴趣的:(Eclipse)