命名流程
它为什么会存在,做什么事、应该怎么用
类名
在我看来,类名是一种类型的抽象,但我们无法直接得到这种抽象。这就好比我们不可能根据生物的种类、科目而决定生物的演化;决定生物的形成。恰恰相反,我们是先通过多种生物进而进一步进行的抽象。
举个例子:先有狗再有的犬科,而不是先有犬科,大自然(或者造物主)根据犬类的规范创建的狗的实例。
综合上述的表达,可以由实例进行引导出抽象,也就是类的形成。所以类必须依托于其实例,其这个实例能在业务中使用。那么这个实例的抽象就只能是名词,因为根据语言学的知识,主语、宾语都是名词形式。
- 根据实例被用到的地方以及主动或被动动作想出3个名词
- 生活或者专业术语
- 上下文越多名词越长
- 列出这些名词可能属性和行为
- 选出属性最少、行为最少、长度最短的名词作为类名
方法签名(包括返回值)
这里方法的参数列表和返回值要根据重构来确定,所以只讨论方法名
- 行为是目标的主语或宾语。如果不是则证明方法的位置错了
- 不要带返回值类型和参数类型类型(单复数参考变量名)
- 使用静态工厂方法创建优于构造器创建
接口名
形容词
变量名
类实例
直接使用类名的小写,不区分可数名词与不可数名词
基础类型(包括包装类型)
- 一般不使用局部变量名称,尝试将其封装在类的属性中通过实例获取
- 状态位、标志位 采用方法化 -> 实例化
容器实例
这里区分下类是 可数名词和不可数名词
- 可数名词时
- 加入上下文条件 xxxsWith(过滤项),注意上下文不是类型!
- 无过滤上下文直接按复数表达
- 不可数名词时
一律加the表示强调!