`

基于Eclipse开发初识(一)

阅读更多

           最近做基于Eclipse的开发,写写对基于Eclipse的开发一些体会。以前一直在用Eclipse,感觉到插件机制的强大和灵活性,但一直没有接触到Eclipse的开发。现在写代码基本上模仿+现学现卖,Eclipse Plugin开发首先就应该学会模仿(我老大常说的一句Monkey see monkey do,《Contributing to Eclipse》的一条rule),因为Eclipse除了Run-time Kernal外都是插件(Everything is a contribution),所以要习惯从已有的contributions来学习,许多时候我们要读Eclipse的源代码,其实读源代码是学习的一个很好的途径,事实上Eclipse灵活的设计凝聚了设计模式大师Erich Gamma的许多优秀的模式思想(看过Erich Gamma作品《设计模式-可复用的软件基础》和JUnit代码的人都为模式带来的灵活和优美感到震惊,Eclipse同样也是)。

         Eclipse开发的基础是SWT和JFace,SWT/JFace是和awt/swing对应的东东,其实熟悉awt/swing开发的人很容易过度到SWT/JFace的开发,事件机制,UI组建、布局管理器也基本类似,SWT使用UI组件提供了更一致的编程风格(构造函数都是是parent,style,不需要显式的添加,一种更方便的Composite模式的构建树形结构的方式),SWT的事件机制底层是直接对Windows事件机制的一种封装(windows下版本而言),熟悉Windows编程的,很容易理解他的事件机制,这也是和Swing的区别,SWT中的非UI线程是不能够访问UI线程的资源的,需要使用 asyncExec,syncExec,timerExec方法开辟一个线程,这个线程交给UI线程来调用,而Swing提供了一种更直观的编程模型,非有UI线程可以访问直接UI线程的。SWT的布局管理器一般通过Layout来定义结构,用layoutData来定义组件的大小,可扩展方式等。JFace实际上是构建在SWT基础之上的粒度更大的,更具有MVC的UI组件。JFace 使用LabelProvider和ContentProvider将模型接口适配成Viwer可以呈现的方式,从而Model和UI的到了彻底的分离。Model和UI分离,Model不被UI所污染是所有UI设计都需要遵循的,Eclipse更是如此。

     Eclipse使用了大量的设计模式,核心模式Extension Object/Extension Interface,让Eclipse在保持API稳定的情况下,能够添加新的接口。Extension Object要达到的效果是:(1)向已有的服务接口添加类型而又不暴露它(2)向已有的类型添加行为。其实现方式是向已有的对象注册支持的类型,使用者可以query到已注册的类型,就像这个类动态的继承了一个接口,支持一个新的接口一样,“可以在运行时添加为一个对象添加接口”。这和COM组件的核心思想一样的。记得Bob大叔在《敏捷开发原则、模式、实践》这本书上就指出了可扩展的几个设计模式:Visitor、Decorator和 Extension Object模式。Visitor是在不改变原来结点类的情况下为结点添加行为、Decorator模式是可以在运行时为对象添加行为。Adapter模式也是Eclipse里面用的比较多的,像前面说的LabelProvider和ContentProvider.Proxy模式是Eclipse Lazy load的核心,Lazy load的实现一般是一个虚拟代理,常常为了效率而使用它(如Hibernate 的Lazy load)。Poxy有很多种,还有如远程代理等,Poxy的目的主要是控制对一个对象的访问,提供安全控制,屏蔽底层细节。

   Eclipse plugin开发、EMF、GMF待续。

1
0
分享到:
评论
2 楼 defrag_sly 2008-10-20  
je里面关心eclipse技术的人不多。跟你认识下。有问题大家一起研究。
1 楼 xh19840213 2008-06-24  
用了这么久的eclipse还没发现这么多,行阿,老连。

相关推荐

    XFire初识-使用Eclipse开发WebService

    **XFire初识:使用Eclipse开发WebService** 在IT行业中,WebService是一种允许应用程序之间进行交互的标准化技术。它通过XML(可扩展标记语言)来交换数据,使得不同平台上的应用能够无缝对接。XFire是Java平台上一...

    eclipse入门到精通

    本教程将带你从初识Eclipse到熟练掌握,一步步成为Eclipse的专家。 **一、Eclipse基础** 1. **安装与配置**:首先,我们需要下载适合操作系统的Eclipse版本,并进行安装。安装过程中需注意JDK的配置,因为Eclipse...

    基于java的企业级应用开发:初识MyBatis.ppt

    MyBatis 是一款广泛应用于Java企业级开发的持久层框架,它的前身是iBatis。MyBatis的主要功能是支持SQL查询、存储过程,并且具备高级映射特性。作为一个ORM(Object/Relation Mapping,对象关系映射)框架,MyBatis...

    初识Spring

    4. **Spring工具集**:Spring Tool Suite(STS)是一个基于Eclipse的IDE,为Spring开发者提供了强大的集成开发环境,包括代码提示、模板、调试器等,加速开发流程。 5. **Spring Framework与Spring Boot的区别**:...

    android开发入门教程

    1.3.1 开发基于Android平台的应用 1.3.2 参加Android开发者大赛 1.3.3 个人英雄主义再现——得到更多人的认可和尊重 1.3.4 获得应有的收益——AndroidMarket 1.4 真实体验——Android模拟器 1.4.1 模拟器概述 1.4.2 ...

    Drools开发手册.doc

    开发Drools项目,通常有两种方式:Eclipse开发和Guvnor开发。 2.1 Eclipse开发 Eclipse是一种广泛使用的Java集成开发环境,通过安装Drools相关的插件,如Drools and jBPM Integration Developer插件,可以在Eclipse...

    关于Android的开发报告

    2. **安装Eclipse集成开发环境**:Eclipse是一个强大的开源IDE,支持多种插件扩展,非常适合进行Android应用开发。 3. **安装Android SDK**:Android SDK提供了编译、调试和部署Android应用所需的工具。 4. **安装...

    GoogleAndroid开发入门与实战随书视频wmv最新版本

    1.3.1 开发基于Android平台的应用 1.3.2 参加Android开发者大赛 1.3.3 个人英雄主义再现——得到更多人的认可和尊重 1.3.4 获得应有的收益——AndroidMarket 1.4 真实体验——Android模拟器 1.4.1 模拟器概述 1.4.2 ...

    初识springboot(修订版).docx

    ### 初识Spring Boot及其环境配置 #### 一、微服务与Spring Boot概念 ##### 微服务简介 微服务架构是一种现代软件设计方法,它强调将一个大型的应用程序拆分成一组小的服务,每个服务实现单一的功能,并且可以独立...

    .Java编程基础-初始Java

    MyEclipse是一款基于Eclipse的Java集成开发环境(IDE),提供了丰富的功能支持Java开发。 1. **新建项目**:在MyEclipse中新建Java项目。 2. **导出项目**:将项目导出为可部署的文件。 3. **导入项目**:将已有的...

    javaEE 开发应用

    - **Struts2**:是一个基于MVC(Model-View-Controller)设计模式的Web应用框架,用于简化Java EE应用的开发,提供了强大的请求处理和结果视图管理功能。 - **Spring**:是一个全面的企业级应用框架,包含了依赖注入...

    Robotium环境搭建和初识

    在搭建Robotium测试环境之前,需要准备一些工具,包括Eclipse集成开发环境、Java开发工具包(JDK)1.8版本、Android SDK以及ADT插件。此外,还需要下载Robotium-solo库文件以及重签名用的re-sign.jar文件。需要注意...

    spring MVC 初识

    在实际开发中,IDEA、Eclipse 等集成开发环境提供了丰富的 Spring MVC 插件支持,可以自动生成 Controller、Service、DAO 层代码,简化开发流程。此外,Maven 或 Gradle 可以帮助管理依赖,使得构建和部署更加方便。...

    基于J2EE的Ajax宝典.docx

    为了开发Ajax应用,读者需要搭建相应的开发环境,包括JDK、Tomcat服务器、Ant构建工具以及Eclipse开发环境的安装和配置。书中详细指导了在Windows和Linux下安装这些组件的步骤,确保开发者能够顺利进行Ajax项目的...

    Google.Android开发入门与实战

    作为一本既及时、又翔实、理论实践相结合的教程,《Google Android开发入门与实战》一书很值得入门者阅读。  值得一提的是,书中的开发实例很有创意,将传统互联网的内容/服务与移动平台紧密结合起来,如书中的...

    Android开发微信小程序页面的图文教程

    Android Studio 是谷歌推出的一个Android集成开发工具,基于IntelliJ IDEA. 类似 Eclipse ADT,Android Studio 提供了集成的 Android 开发工具用于开发和调试。大概就是一个开发工具。 项目介绍 我们会首先建立大概...

    Android入门到精通源代码.

    2.5 使用Eclipse开发Android应用程序 2.5.1 使用Eclipse创建Android项目 2.5.2 Eclipse中Android项目架构 2.5.3 Eclipse中Android项目的调试和运行 第3章 Android中的Activity 3.1 Activity的作用 3.2 单Activity的...

Global site tag (gtag.js) - Google Analytics