Java:类及方法常见规约
1、当一个类有多个构造方法,或者多个同名方法,这些方法应该按顺序放置在一起,
便于阅读,此条规则优先于下一条。
2、类内方法定义的顺序依次是:公有方法或保护方法 > 私有方法 > getter / setter 方法。
说明:公有方法是类的调用者和维护者最关心的方法,首屏展示最好;保护方法虽然只是子类关心,也可能是“模板设计模式”下的核心方法;而私有方法外部一般不需要特别关心,是一个黑盒实现;因为承载 的信息价值较低,所有 Service 和 DAO 的 getter/setter 方法放在类体最后。
3、类成员与方法访问控制从严:
- 1) 如果不允许外部直接通过 new 来创建对象,那么构造方法必须是 private。
- 2) 工具类不允许有 public 或 default 构造方法。
- 3) 类非 static 成员变量并且与子类共享,必须是 protected。
- 4) 类非 static 成员变量并且仅在本类使用,必须是 private。
- 5) 类 static 成员变量如果仅在本类使用,必须是 private。
- 6) 若是 static 成员变量,考虑是否为 final。
- 7) 类成员方法只供类内部调用,必须是 private。
- 8) 类成员方法只对继承类公开,那么限制为 protected。
说明:任何类、方法、参数、变量,严控访问范围。过于宽泛的访问范围,不利于模块解耦。如果是一个 private 的方法,想删除就删除,可是一个 public 的 service 成员方法或成员变量,删除需要考虑范围增大。
4、final 可以声明类、成员变量、方法、以及本地变量,下列情况使用 final 关键字:
- 1) 不允许被继承的类,如:String 类。
- 2) 不允许修改引用的域对象。
- 3) 不允许被覆写的方法,如:POJO 类的 setter 方法。
- 4) 不允许运行过程中重新赋值的局部变量。
- 5) 避免上下文重复使用一个变量,使用 final 可以强制重新定义一个变量,方便更好地进行重构。
--内容来自《阿里巴巴Java开发手册》