快速业务通道

Eclipse中的API Tools:简介 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-14
g getId() {     return Math.round(Math.random());   } }

我们的抽象小部件有一个用 API 限制注释的方法,它告诉客户端不要覆盖此方法。让我们创 建一个可用的默认小部件。

清单 3. DefaultWidget.java

package 

org.eclipse.example.widgetfactory;
/**
* A default widget, this class isn''t meant to be extended.
*
* Implementation is provided as-is.
*
* @noextend
*/
public class DefaultWidget extends AbstractWidget {
  public String getName() {
    return "The default widget";
  }
}

Eclipse中的API Tools:简介(6)

时间:2011-11-09 IBM Chris Aniszczyk

我们为客户端提供的默认小部件非常简单。它主要用于使用而非扩展。我们可以在自己的插件 内随意扩展该类,或创建其他可用的默认小部件。因此,假设我们是这个小部件 API 的客户,看看会发 生什么。让我们创建两个类:MyWidget(实现 IWidget)和 MyDefaultWidget(扩展 DefaultWidget)。 作为小部件 API 的客户,我会看到什么?对于 MyWidget 类,我们将看到一个警告,说明我们正在实现 不能由客户实现的 API 接口(参见图 5)。对于 MyDefaultWidget 类,将看到关于非法扩展 DefaultWidget 类以及非法覆盖 getId() 方法的警告。

图 5. MyWidget.java

Eclipse中的API Tools:简介 - 编程入门网

图 6. MyDefaultWidget.java

Eclipse中的API Tools:简介 - 编程入门网

这个简单的示例让 您清晰地了解到如何向 API 客户呈现关于 API 的使用信息。

Eclipse中的API Tools:简介(7)

时间:2011-11-09 IBM Chris Aniszczyk

二进制文件不兼容

声明 API 时遇到的问题是:如何知道何时真正将 API 从一个版本拆分到另一个软件版本中。例如,拆分 API 的简 单方法是更改先前定义的 API 方法的方法签名。为了方便演示,我将用常见的 PluginRegistry 类在 Eclipse 代码库中完成该操作。

图 7. 二进制文件不兼容的更改

Eclipse中的API Tools:简介 - 编程入门网

在本例中,我修改了现有的 API 方法 findEntry(String id),而 API Tools 足够智能,可以意识到 这将拆分这个 API 类的客户。拆分 API 有许多其他方法,并且 API Tools 将提供所有这些方法的检查 。结果是,所有这些二进制文件的不兼容更改都可以在 API Tools 首选项页上配置。

图 8. API Tools 首选项

Eclipse中的API Tools:简介 - 编程入门网

版本化

处理 API 遇到的另一个问题是版本管理。我认为版本管理有两个方面:一是提出版本化策略,二是强 制执行该策略。API Tools 将遵循 Eclipse 版本化指导信息(请参阅 参考资料),这些指导信息非常依 赖于 OSGi 版本化模式。为简单起见,版本号由四部分组成 — 三个整数和一个字符串,分别是 major.minor.service.qualifier。

每个版本分段将捕捉不同的意图。主要分段表示 API 中的拆分,次要分段表示外部可见的更改(如新 API),服务分段表示错误修正和开发流程更改,而限定符分段表示特殊构建。

由于进行了某些更改(比如添加新 API 方法或修复 bug)而必须更改插件版本号时,应该记住比较困 难且容易出错的部分。过去的常见问题是开发人员常常在发生更改时就提升次要版本,而不是在更改新 API 更改时 — 例如,在开始 Eclipse SDK 的 3.4 流程时,通常只提升次要版本,假定将来进行的更改 会导致修改次要版本。但是,有了 API Tools,版本管理就不再容易出错,因为 API Tools 可以根据 API 基准告诉您正确的插件版本,并强制执行。例如,如果我把一个方法添加某个插件的版本号为 3.3.0 的 API 类中,API Tools 将显示什么呢?

Eclipse中的API Tools:简介(8)

时间:2011-11-09 IBM Chris Aniszczyk

无序的 API Tools 和报表

虽然在无序环境中使用 API Tools 不是本文的讨论范围,但它是可行的。这就是 Eclipse 构建的任 务,它将生成

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号