`

eclipse体系架构学习

阅读更多

内容为资料摘录。

 

eclipse 不单是一个java IDE,当然最初java IDE确实是eclipse最早最成功的产品之一。

eclipse 系统功能:是一个可扩展的、集程序开发平台、运行时和应用程序框架为一身的多功能系统。利用这套系统,开发者可以完成包含程序开发、部署和管理在内的一系列工作。他将软件开发周期的每一个环节都纳入了管理之中。

 

Eclipse的插件机制是轻型软件组件化架构。在富客户机平台上,Eclipse使用插件来提供所有的附加功能。eclipse的核心就是动态发现、装载和运行插件的体系结构。

Eclipse的设计思想是:一切皆插件。Eclipse核心很小,其它所有功能都以插件的形式附加于Eclipse核心之上。这些插件只有当eclipse启动后,真正使用它们时,才动态的调入内存。用户不必担心eclipse的臃肿问题。插件是可识别的最小的功能单元,插件的大小没有限制(JDTeclipse中最大的组件之一,大约10的插件)。

 

 

Eclipse基本内核包括:图形API (SWT/Jface) Java开发环境插件(JDT ),插件开发环境(PDE)等。

 

具体包括四个部分组成——Eclipse PlatformJDTCDTPDEPlug-in Development EnvironmentPDE)。JDT支持Java开发、CDT支持C开发、PDE用来支持插件开发,Eclipse Platform则是一个开放的可扩展IDE,提供了一个通用的开发平台。它提供建造块和构造并运行集成软件开发工具的基础。

 

Eclipse SDK(软件开发者包)是Eclipse PlatformJDTPDE所生产的组件合并。

 

eclipse的体系架构:

eclipse下的平台结构:

eclipse平台是一个通用的基础框架结构,它的组件包括平台运行库platform runtime;工作台workbench;工作区workspace;团队组件team component;调试debug;帮助help。如图所示(紫红色部分)。



 

 

1.运行库:是一个基于OSGiopen service Gateway initiative)规范用来定义eclipse插件模型以及扩展概念和扩展点的代码,在运行时是整个架构的核心。它还提供一些额外的服务,如日志和并发性。eclipse的架构就是参照OSGi实现的。其核心org.eclipse.osgi就是OSGi的实现。它管理插件,负责eclipse的启动,找到本地安装的插件,读入这些插件的清单,然后匹配扩展和扩展点,因此在内存中产生的注册表可用于所有的插件。在3.0之前的版本,必须重启才能识别新插件和扩展,3.0之后是在OSGi基于组件的运行时技术的基础得到的,就不必重启了。插件在OSGieclipse架构中声明接口的方式类似。OSGi中,其声明被称为bundle清单(manifest.mf),而在以前的eclipse中被称为插件清单plugin.xml。目前的eclipse尚且兼容这两种方式的声明,如果在运行时,找不到manifest.mf,它会使用插件清单中的<plugin><runtime><requires>标签来生产manifest.mf放到configuration\org.eclipse.osgi \manifests下。

2.工作台workbench:它是eclipse的桌面集成开发环境,视图、编辑器、透视图的概念都在这一层定义。workbench中包含了两个GUI库,SWTJfaceworkbencheclipse提供的用户界面就是通过他们实现的。SWT是一组独立于操作系统的低级工具箱,支持平台集成和可移植API,为eclipse提供器外在的观感。Jface构建在SWT之上,提供了一些MVC的类,使的开发图形应用程序更为简单。

3.工作区workspace-包含了编写项目的源代码,管理用户资源,以及一些eclipse的个性优化配置文件;还负责通知其他插件关于资源变更的信息。

4.团队组件team component 包含了一个框架,提供版本控制和配置管理支持,允许其他厂商的插入自身的版本控制系统(如CVSSVN),并能交互。

5.调试debugJPDA 是一个多层的调试框架,包括 JVMDIJDWPJDI 三个层次。JAVA 虚拟机提供了 JPDA 的实现。Eclipse 利用 JPDA 调试 JAVA 应用,事实上,所有 JAVA 开发工具都是这样做的。

6.帮助help,该组件让程序员可以为用户通过帮助系统进行协助,允许用户通过帮助系统搜索帮助文档。

 

eclipse的体系结构:

上面说过,eclipse体系结构包含了eclipse平台、JDTPDE,他们都以插件的形式插在eclipse平台上,JDT 扩展平台工作台,提供了编辑、查看、编译、调试和运行java代码的专门功能部件。PDE提供了用来自动创建、处理、调试和部署插件的工具。

 

eclipse体系结构的最高优先级:可扩展性与集成

eclipse通过插件定义新功能,它使用一个名为扩展点的添加项来引入新的功能。这些扩展点描述了一个公开声明插件可扩展性的结构化方法。通过添加项加载新功能的方式,一般是通过查询注册表。如:添加可视化工具栏时,workbench在添加完了那些非由添加项的可视化组件后,就会遍历注册表,找到它指定的扩展点下的扩展(也就是添加项)。

 

用户界面架构

eclipse自身很大一部分代码是用户界面代码。如图:



 

 

SWT架构

包含了一般的图形和GUI小部件集,这些小部件都是基于本地操作系统的相同小部件,如果本地视窗系统没有某个特殊的小部件,SWT就模拟一个。SWT包含在一个插件中,其他插件更容易访问SWT的功能,SWT不依赖与platform runtimeworkbench界面需要使用SWT

 

JFace架构

JFace的设计目的是简化创建新用户界面的过程,压缩冗余代码,增强SWT的小部件功能。JFace UI通过几个架构完成上述目标。

1.  JFace查看器

如果程序要显示部分数据模型(对象列表吧),如果通过SWT,则我们需要使用基本数据类型,如Stringint ,Boolean。任何时候要显示都要转成字符串才能通过SWT显示。如果使用JFace就不同了,我们不需要处理基本类型的小部件,只需使用一个查看器的东东,这是一个类似SWT小部件的工具,它不知道要显示的类表结构是什么,只知道是一个数据库表,与你提供的helper类结合就可以显示数据。这个方法编码少,代码更易于理解和重用,代码更集中于模型-视图的交互。

2.  JFace操作和添加项在扩展Eclipse UI的角色

操作架构通过识别一些界面上外观不同,但语义相同的操作,来压缩代码。如下拉菜单,弹出菜单,工具栏按钮等,在SWT看来它们是不同的,但在JFace看来都是等价的。因此jface为它们创建了一个操作抽象Action。而我们的编码重点也就放在action内,其他的部分让jface完成。

3.  Jface的对话框和向导:用户交互架构

它是一种更高级别的外观和感觉上的一致性,可以理解为用户交互架构。作为开发者,我们更应关注与我们的逻辑,而不是向导/对话框本身的创建,jface中的向导/对话框处理了这些通用的行为,我们只需要继承这些类,覆盖/实现自己感兴趣的方法,就可以达到与用户界面之间的交互。如;首选项对话框,我们就可以通过扩展项,将自己的页面添加进去,代码量少。

4.  Jface Text 构建定制的文本编辑器

5.  图像和注册表架构

可帮助简化图像、字体的创建和销毁的管理工作,SWT中是谁创建谁销毁,通过这个架构提供了全局的注册表,简化资源周期的管理,方便共享公共的字体和图像等。

 

workbench的架构

1.       存储持久性值。它包含几个选项,能够以一致并相互协调的方式来定义插件和存储值。这些选项包括对话框设置API,首选项API,用户设置API。如:打开一个对话框时,保留上次值,就可以用XXXPlugin.getDefault().getDialogSettings(),取得上次的值。(放在workspace中的.metadata/.plugins/your_plugin/dialog_settings.xml中)

2.       使用胖客户端平台创建应用程序。workbencheclipse platform的“UI特性”。从用户角度来说workbench用户界面和eclipse是一个东西。这部分主要是视图和编辑器类的使用。

3.       使用并发架构维持对用户的快速响应。3.0之后eclipse后台添加了作业处理,同时可以进行多个后台操作,调度在线程上排队的任务。

4.       通过功能组管理用户界面。功能组决定在用户界面上提供什么组件,在首选项中激活或禁用。如Team CVS。如果上述功能被激活,那么team组件和它的透视图、向导、视图、操作等就可见。否则不可见。

5.       workbench中的资源架构。资源架构添加了必需的关键行为,具有监控资源更改的能力。如Navigator,能实时精确地显示工作空间的内容。它们也可以协调其他的行为,如保存资源时,workbench就会自动调用java编译器来构建.class文件,这些资源被称为生成器。资源还包括历史记录、书签、任务等。

  • 大小: 44.9 KB
  • 大小: 11.6 KB
分享到:
评论

相关推荐

    Eclipse权威开发指南2.pdf

    10.2 复习Eclipse体系结构...... 237 10.2.1 Eclipse应用程序类型..... 240 10.2.2 Eclipse的运行..... 241 10.2.3 定义一个Eclipse应用 程序..... 242 10.3 重用Eclipse的时机...... 243 10.3.1 非UI的插件组件......

    Eclipse权威开发指南3.pdf

    10.2 复习Eclipse体系结构...... 237 10.2.1 Eclipse应用程序类型..... 240 10.2.2 Eclipse的运行..... 241 10.2.3 定义一个Eclipse应用 程序..... 242 10.3 重用Eclipse的时机...... 243 10.3.1 非UI的...

    Eclipse权威开发指南1.pdf

    10.2 复习Eclipse体系结构...... 237 10.2.1 Eclipse应用程序类型..... 240 10.2.2 Eclipse的运行..... 241 10.2.3 定义一个Eclipse应用 程序..... 242 10.3 重用Eclipse的时机...... 243 10.3.1 非UI的...

    OpenOLAT:学习管理系统OpenOlat

    OpenOlat OpenOlat是一个基于Web的电子学习平台,用于教学,学习,评估和交流,LMS,学习管理系统。 OpenOlat的简单直观操作给人留下了深刻的印象。 完善的模块化工具包为课程作者提供了广泛的教学可能性。 每个...

    Hadoop技术内幕:深入解析MapReduce架构设计与实现原理

    阅读源代码前的准备1.1 准备源代码学习环境1.1.1 基础软件下载1.1.2 如何准备Windows环境1.1.3 如何准备Linux环境1.2 获取Hadoop源代码1.3 搭建Hadoop源代码阅读环境1.3.1 创建Hadoop工程1.3.2 Hadoop源代码...

    2017最新大数据架构师精英课程

    本资源为大数据基础到中高级教学资源,适合稍微有点大数据或者java基础的人群学习,资源过大,上传乃是下载链接,不多说,上目录: 1_java基础2 l3 a2 a$ t7 J2 b+ `- p 2_java引入ide-eclipse 3_java基础知识-循环...

    Java开源例程ClockSimpleJEE4 0.97 安全增强和架构整理版

    Java开源例程ClockSimpleJEE4 0.97 安全增强和架构整理版 以下是readme和release note ClockSimpleJEE4是开源例程企业考勤系统 用于Java,mysql学习。 所有程序在GPLv3条款下开源,关于GPLv3相关pdf已放置在doc...

    使用多层体系结构构建REST风格的Web服务和动态Web应用程序

    简介场景组件设置环境创建数据库在Eclipse中配置Tomcat服务器在Eclipse中创建Web项目ncarUsers从文章下载导入文件实现域对象实现数据访问层实现业务逻辑层实现表示层客户机应用程序在Eclipse中运行应用程序内部原理...

    数据库原理(第5版)

    第8章介绍了商业智能(BI)系统和支持它们的数据仓库体系结构,还讨论了多维数据库,解释了如何为Heather Sweeney Designs建立多维数据库,并使用它生成PivotTable OLAP报表。 附录A提供了SQL Server 2008 R2 Express...

    OpenStack实战演练及开发入门完整全套培训

    定制研发:在学习openstack源码级深度解析培训后,你能了解openstack源码的体系结构,并能根据需要进行定制开发,满足您在实际生产环境中OpenStack的各种疑问和不满足的功能。 ------------------------课程内容---...

    OpenStack实战演练及开发入门完整全套培训__百度云视频链接

    定制研发:在学习openstack源码级深度解析培训后,你能了解openstack源码的体系结构,并能根据需要进行定制开发,满足您在实际生产环境中OpenStack的各种疑问和不满足的功能。 ------------------------课程内容---...

    HBase.docx

    0、Windows 下Eclipse运行HBase程序 2 一、HBase的概述 5 1.hbase的特点 6 2.特殊概念 6 3.确定值 6 4.HBASE的架构 6 5.apache的下载地址 7 二、HBase安装部署与简单应用 7 一:下载安装 7 1.下载安装 7 2.开启...

    Android实习报告.doc

    Android最大特点在于它是一个开放的体系架构,具有非常好的开发和调试环境,而 且还支持各种可扩展的用户体验,Android里面具有非常丰富的图形系统,对多媒体的支 持功能和非常强大的浏览器。Android平台的开放性等...

    JAVA上百实例源码以及开源项目源代码

     Java数据压缩与传输实例,可以学习一下实例化套按字、得到文件输入流、压缩输入流、文件输出流、实例化缓冲区、写入数据到文件、关闭输入流、关闭套接字关闭输出流、输出错误信息等Java编程小技巧。 Java数组倒置...

    本科毕业设计开题报告(计算机协会信息管理系统的设计与实现V5)

    PowerDesigner是Sybase的企业建模和设计解决方案,采用模型驱动方法,将业务与IT结合起来,可帮助部署有效的企业体系架构,并为研发生命周期管理提供强大的分析与设计技术。 六、研究方法 该毕业设计采用的研究方法...

    仓库物品管理系统设计方案书.doc

    摘要:ORACLE数据库系统是美国ORACLE公司(甲骨文)提供的以分布式数据库为核心的 一组软件产品,是目前最流行的客户/服务器(CLIENT/SERVER)或B/S体系结构的数据库之 一。比如SilverStream就是基于数据库的一种...

    Google.Android开发入门与实战

    《Android开发入门与实战》注重对实际动手能力的指导,在遵循技术研发知识体系的严密性同时,在容易产生错误、不易理解的环节配以了翔实的开发情景截图,并将重要的知识点和开发技巧以“小实验”、“小提醒”、“小...

    《Google Android开发入门与实战》.pdf

    本书注重对实际动手能力的指导,在遵循技术研发知识体系的严密性同时,在容易产生错误、不易理解的环节配以了翔实的开发情景截图,并将重要的知识点和开发技巧以“小实验”、“小提醒”、“小知识”、“注意”等的...

    JAVA基础课程讲义

    JAVA技术体系架构 14 JAVA的特性和优势 14 JAVA应用程序的运行机制 15 JVM(JAVA VIRTUAL MACHINE) 16 Java运行时环境JRE(Java Runtime Environment) 17 JAVA语言应用范围 18 第一个JAVA程序 18 JAVA开发环境搭建 18 ...

    android开发入门与实战(下)

    6.1 Android体系结构介绍 6.1.1 应用程序(Application) 6.1.2 应用程序框架(ApplicationFramework) 6.1.3 库(Libraries)和运行环境(RunTime) 6.2 Android应用程序组成 6.2.1 Activity介绍 6.2.2 ...

Global site tag (gtag.js) - Google Analytics