Eclipse 平台
命名约定

上次修订时间 2002 年 6 月 24 日 — Eclipse 项目 R2.0 的版本

“Eclipse 平台”的命名约定与指南:

Java 包

“Eclipse 平台”由 Java 包的集合组成。包名称空间是遵循 Sun 的包命名指南来管理的;在获得包子树所有者的同意之前,不应创建子包。Eclipse 平台的包全部都是 org.eclipse 子包。在 org.eclipse 后面的第一个包名组件称为包名。org.eclipse 的下列主要包是在 Eclipse 2.0 发行版中指定的:
org.eclipse.ant[.*] — Ant 支持
org.eclipse.compare[.*] — 比较支持
org.eclipse.core[.*] — 平台核心
org.eclipse.debug[.*] — 调试
org.eclipse.help[.*] — 帮助支持
org.eclipse.jdi[.*] —“Java 调试接口”(JDI)的 Eclipse 实现
org.eclipse.jdt[.*] — Java 开发工具
org.eclipse.jface[.*] — JFace
org.eclipse.pde[.*] — 插件开发环境
org.eclipse.search[.*] — 搜索支持
org.eclipse.swt[.*] — 标准小窗口工具箱
org.eclipse.team[.*] — 小组支持和版本以及配置管理
org.eclipse.tomcat[.*] — Apache tomcat 支持
org.eclipse.ui[.*] — 工作台
org.eclipse.update[.*] — 更新/安装
org.eclipse.webdav[.*] — WebDAV 支持
保留下列包名称段:
internal — 指示不包含任何 API 的内部实现包
tests — 指示仅包含测试套件的非 API 包
examples — 指示仅包含示例的非 API 包
这些名称是用作限定符的,且只能在主包名的后面出现。例如,
org.eclipse.core.internal.resources — 正确用法
org.eclipse.internal.core.resources — 不正确。internal 位于主包名前面。
org.eclipse.core.resources.internal — 不正确。internal 未紧接在主包名后面。
其它有关“Eclipse 平台”结构的信息:“Eclipse 平台”分为核心用户界面两部分。分类为“核心”的任何事项都是与窗口系统无关的;取决于“核心”而不是取决于用户界面的应用程序和插件可无序地运行。“核心”与用户界面之间的差别不同于 API 与非 API 之间的差别;“核心”和用户界面都包含 API。“Eclipse 平台”的用户界面部分称为“工作台”。“工作台”是一个高级用户界面框架,用于构建具有根据可插入组件构建的复杂用户界面的产品。“工作台”是在 JFace、SWT 和“平台核心”的基础上构建的。SWT(标准小窗口工具箱)是与本机窗口系统对话的与 操作系统平台无关的低级别方法。JFace 是中级用户界面框架,对于构建复杂的用户界面部分(如属性查看器)很有用。SWT 和 JFace 都定义为用户界面。Java tooling 是一个在工作台的基础上构建的 Java IDE。其它信息结束。

API 包 API 包是包含必须为 ISV 可用的类和接口的包。API 包的名称对 ISV 来说必须是有意义的。ISV 需要记住的不同包的数目应不大,因为混淆 API 包可能会使得 ISV 很难知道要导入哪些包。在 API 包中,所有公共类和接口都被认为是 API。API 包的名称不应包含 internaltestsexamples 以免与命名非 API 包的方案混淆。

内部实现包 作为平台实现一部分但不包含任何应对 ISV 公开的 API 的所有包都被认为是内部实现包。应将所有实现包标记为 internal,而标记则出现在主包名的紧后面。将告知 ISV 标有 internal 的所有包都不包括在内。(对“.internal.”进行的简单文本搜索检测到源文件中有可疑引用;例如,“/internal/”在 .class 文件中就是有疑问的)。

测试套件包 应将包含测试套件的所有包标记为 tests,而标记则出现在主包名的紧后面。全自动测试是可作为标准;例如,org.eclipse.core.tests.resources 就将包含对 org.eclipse.core.resources 中的 API 的自动测试。交互式测试(必须有操作者进行操作的测试)应标上 interactive 作为上一个包名段;例如,org.eclipse.core.tests.resources.interactive 就将包含相应的交互式测试。

示例包 包含交付给 ISV 的示例的所有包应标记为 examples,而标记则出现在主包名的紧后面。例如,org.eclipse.swt.examples 将包含如何使用 SWT API 的示例。

附加规则:

类和接口

Sun 的命名指南规定
类名应是名词,大小写混合,内部每一个词的首字母大写。尽量使类名简单且具有描述性。使用完整的词 — 避免使用首字母缩略词和缩写词(除非该缩写词比长型格式的词使用广泛得多,如 URL 或 HTML)。

示例:
    class Raster;
    class ImageSprite;

接口名称应象类名那样首字母大写。

对于接口名称,用“I”表示接口约定:所有接口名称加以“I”前辍。例如,“IWorkspace”或“IIndex”。此约定使接口名称更易于识别,从而有助于代码的易读性。(Microsoft COM 接口遵从此约定)。

附加规则:

方法

Sun 的命名指南规定
方法应为动词,大小写混合,第一个字母小写,内部每个词的首字母大写。

示例:
    run();
    runFast();
    getBackground();

附加规则:

变量

Sun 的命名指南规定
除变量之外,所有实例、类和类常量都为大小写混合(而首字母小写)。内部的词首字母大写。变量名不应以下划线 _ 或美元符号 $ 开头,尽管两者都是允许的。

变量名应是简短而有意义的。变量名的选择应起到助记作用 — 即它可指示其使用目的。除临时的“用后即弃”的变量外,应避免使用一个字符的变量名。临时变量的常见名称有:对于整数,有 ijkmn;对于字符,有 cde

示例:
    int i;
    char c;
    float myWidth;

(注意:不再遵循给非常量字段名加以“f”前辍(如“fWidget”)的约定。)

常量

Sun 的命名指南规定
已声明类常量以及具有 ANSI 常量的变量的名称应为全大写,且各个词以下划线(“_”)分隔。

示例:
    static final int MIN_WIDTH = 4;
    static final int MAX_WIDTH = 999;
    static final int GET_THE_CPU = 1;

插件和扩展点

所有插件(包括作为“Eclipse 平台”一部分的插件,如“资源”插件和“工作台”插件)都必须具有唯一的标识,且遵循与 Java 包一样的命名模式。例如,将工作台插件命名为 org.eclipse.ui[.*]

插件名称空间是分层管理的;在获得封装名称空间所有者的同意之前,不要创建插件。

具有多个扩展的扩展点应为复数名称。例如,应为“builders”而非“builder”。

Copyright IBM Corporation and others 2000, 2003.