`
drv208kb
  • 浏览: 12983 次
最近访客 更多访客>>
社区版块
存档分类
最新评论

Eclipse ---RCP总结

 
阅读更多

Eclipse ---RCP总结
2010年10月24日
     Eclipse RCP是一项位于Eclipse平台核心的功能。大多数人想到Eclipse时,他们会想到Java集成开发环境(IDE)。如果您将Eclipse中关 于IDE的内容剥去,剩下的就是一个提供基本工作台功能的核心,这些功能包括对可移动和可叠加的窗口组件(编辑器和视图)、菜单、工具栏、按钮、表格、树 形结构等等的支持。这个核心功能就是Eclipse RCP。
    Eclipse RCP为应用程序开发人员提供了:
  应用程序和特性的一致且本地的外观 公共应用程序服务,例如窗口管理、更新管理、帮助和选择管理 本地的外观,利用Windows、Mac OS X、Linux、Solaris、HP-UX、AIX和嵌入式设备上的实际平台窗口部件 标准化的组件模型 普及的可扩展性 整合的更新机制 顶级开发工具(Eclipse 软件开发包(SDK)是世界级的软件开发环境)
    向导生成了以下类:
    Application.java
    生成的Application类包含一个单一方法,run(Object args),此方法负责运行应用程序(真奇怪)。这个方法引导并打开工作台窗口,当它退出时,应用程序将关闭。
    ApplicationActionBarAdvisor.java
    ApplicationActionBarAdvisor类负责构建菜单栏、工具栏和状态行。这一生成的类会创建一个带有单一File菜单(其 中包含Exit项)的菜单栏。您可以利用fillCoolBar(ICoolBarManager coolBar)方法为您的工作台窗口添加一个工具栏。类似地,您也可以用fillStatusLine(IStatusLineManager statusLine)来为工作台窗口添加一个状态行。
    ApplicationWorkbenchAdvisor.java
    ApplicationWorkbenchAdvisor类提供大量到应用程序生命周期的钩子。例如,您可以添加程序启动或关闭时调用的方法。生成的实现只是指定呈现给用户的初始视图。
    ApplicationWorkbenchWindowAdvisor.java
    和ApplicationWorkbenchAdvisor类似,ApplicationWorkbenchWindowAdvisor类提供 到工作台生命周期的钩子。您可以添加创建、打开、还原或关闭工作台窗口时调用的方法。生成的实现提供一个preWindowOpen()方法,此方法设置 窗口的初始大小和标题,以及是否隐藏工具栏和状态行(二者都是隐藏的)。
    Perspective.java
    Eclipse SDK提供了大量的视图。生成的应用程序包括一个视图;您可以根据要求指定额外的视图。生成的视图隐藏了编辑器区(即,编辑器在视图中是隐藏的)并且会添 加由向导生成的视图。这种视图被设置为固定的:它的视图没有熟悉的标题栏,而且不能移动。用户可以通过将设置从false修改成true(和为应用程序添 加一些新的视图)来随意调整视图的位置。
    View.java
    生成的View类包含了一个带有少量硬编码条目的表格。您可以利用它来制定您的应用程序外观。如果表格是您所需的,您可以通过将其与您的对象模型相连接来定制它,或者使用一个或多个窗口组件彻底替换掉它。
    下一步我们将根据要求,通过更改或增加菜单、菜单项、工具栏、视图,以及编辑器来修改生成的代码。
  进阶   以这种方式构建应用程序可以使开发人员了解到很多基本功能。RCP不仅是一个窗口组件的集合,它还提供了一个用于管理应用程序用户界面的系统, 其中包括了更高等级概念的编辑和视图(可以移动和叠加)、工具栏、菜单、选择管理等等。但是用这种方式构建应用程序仅仅发挥了Eclipse的一小部分功 能。这是一个进入Eclipse应用程序构建的不错的开始;接下来的步骤自然就是构建真正的组件了。
    插件是Eclipse平台的一项重要功能。实际上,Eclipse本身就是一个插件集;Eclipse中的大部分组件都是插件(除了一小部分引 导代码)。这使得Eclipse极具可扩展性。可以通过创建一个或多个插件(这些插件可由框架动态发现和安装)的方式,将新功能添加进SDK。插件可被动 态发现;添加插件时并不需要更新插件列表。
    类似于Eclipse SDK,RCP应用程序也是一个插件的集合。插件的外形大小不一。如上面所说的,您可以用一个单一的插件建立整个Eclipse RCP应用程序并执行ECP全部的功能。或者您也可以将RCP应用程序建设成一个插件集,每一个插件都会执行程序的一部分功能。
    将RCP应用程序构建成插件集有很多获益,包括:
    延迟加载
    Epclise只在需要的时候加载插件。如果您将您的程序分解成很多插件,您就可以缩短程序的启动时间,改善它的内存占用率。在启动时,只有初始化所需的插件子集会被加载,而不是整个应用程序;这将减少启动所需的时间和内存。
    更新
    Eclipse可根据需要更新单一插件。如果您的应用程序是由多重插件构成的,那么更新时只需下载所需插件的那一部分进行安装。这样的话,就会减少应用程序更新的时间和所需的资源。
    扩展性
    将一个应用程序分割成多重插件有利于程序今后的扩展性。
    重用
    将应用程序建成一个组件集合,使得您有机会在其他程序中重用这些组件而无须修改代码。
    更好的设计
    使用多插件更利于设计。当您分割一个应用程序时,您会被迫去考虑一些类似于“我该如何去定义组件之间的接口”或“怎样才能使它们之间的交流更便利”之类的重要问题。不幸的是,这并不保证您能得到一个伟大的设计,但它确实鼓励您往这方面努力。
    分割应用程序的一个普遍的方式是将您的领域业务逻辑和对象模型归入一个插件,将您的用户界面归入另一个。这样做的话,您可以有效地按照模型观察 控制器模式所列出的程序行来编写您的程序。那就意味着,应用程序的业务逻辑(包含在其自身的插件里)和用户界面的细节互不干涉(理想状态下,这就避免了任 何用户界面技术或语言的概念)。用户界面代码(观察和控制层)由另一个插件来提供,从而不会牵涉到商户逻辑的执行。业务逻辑插件从属于用户界面插件,后者 会调用某些在业务逻辑中定义的模型。这种架构形式十分类似于Java EE应用程序:一个网络模型(WAR文件)包含了小服务程序(控制器)和JSP(视图);其他的JAR文件则包含了业务逻辑和对象模型。
    Eclipse组件在这种架构模式下提供了极其出色的服务。通过加强可视化模型,Eclipse迫使开发人员不再愿意把用户界面代码放入模型中 (当然,真正的程序员可以解决这个问题)。商户逻辑插件(或其他的插件)都从属于用户界面插件集:在视图中可以看到模型,但反过来却不行。通过鼓励这种分 割方式,代码中的耦合度降低了,从而使代码在修改过程中不再那么脆弱而且代码的重用率也提高了。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics