【笔记68】遵守被广泛认可的命名约定

命名惯例分为两大类:字面的(typographical)和语法的(grammatical)。

1、字面的命名惯例比较少,但也涉及包,类,方法,域和类型变量。

  • 包的名称应该是层次状的,用句号分隔每个部分。任何将在你的组织之外使用的包,其名称都应该以你的组织的Internet域名开头,并且将顶级域名放在前面,例如com.sun ,gov.nsa。标准类库和一些可选的包,其名称以java和javax开头,这属于这一规则的例外。
  • 类和接口的名称,包括枚举和注解类型的名称,都应该包括一个或者多个单词,每个单词的首字母大写,例如Timer和TimerTask。应该尽量避免用缩写,除非是一些首字母缩写和一些通用的缩写,比如max和min。
  • 方法和域的名称与类和接口的名称一样,都遵守相同的字面惯例,只不过方法或者域的名称的第一个字母应该小写,例如remove,ensureCapacity。
  • 唯一的例外是“常量域”,它的名称应该包含一个或者多个大写的单词,中间用下划线隔开,例如VALUES,NEGATIVE_INFINITY。常量域是静态final域,它的值是不可变的。
  • 类型参数名称通常由单个字母组成。这个字母通常是以下五种类型之一:T代表任意的类型 , E表示集合的元素类型  ,  K和V表示映射的键和值的类型 , X表示异常的类型。任何类型的序列可以是T,U,V或者T1,T2,T3。

2、语法命名惯例比字面惯例更加灵活,也更有争议。

  • 对于包而言,没有语法命名惯例。类(包括枚举类型)通常用一个名词或者名词短语命名,例如Timer、BufferedWriter或者ChessPiece。接口的命名与类相似,或者以"-able"或"-ible"结尾的形容词,如Runnable。由于注解类型有那么多用处,因此没有单独安排词类。名词、动词、介词和形容词都很常用,例如BindingAnnotation、Inject。
  • 执行某个动作的方法,常用一个动词或动词短语,如append或drawImage。
  • 对于返回boolean类型的方法,名字常以“is"开头,很少用has,后加一个名词或形容词或短语,或者任何具有形容词功能的单词或短语,如isDigit,isProblemPrime。
  • 如果返回的被调用对象的一个非boolean的函数或者属性,则常用一个名词/短语,或以"get"开头的动词短语。
  • 如果方法所在的类是一个Bean,则强制要求以get开头。如果类包含对属性操作,常用setAttribute或getAttribute格式命名。
  • 转换对象类型的方法,如果返回不同类型的独立的对象,则称为toType 。
  • 如果返回一个视图,则用asType, 如果返回与被调用对象同值的原语类型,称为typeValue静态工厂的方法,常用valueOf或getInstance。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值