要做到真正整洁的代码,至少要将注意力上升到类的层面
10.1 类的组织
- 根据标准的 Java 约定,类的标准组织应该如下所示
public class ClassName {
// 公共静态变量
// 私有静态变量
// 私有实体变量
// 公共函数
// 私有工具函数
}
10.2 类应该短小
- 在设计类时,首要规则就是要尽可能短小,不要有多余的、不属于这个类的内容
- 要确定这个类是不是太长了,最关键的是要看这个类的类名是不是能精确的表达这个类所有的内容
- 如果不能,则说明这个类需要被拆分
10.2.1 单一权责原则( SRP )
- 类或模块应该有且只有一条被修改的理由
- 系统应该有许多短小的类组成,而不是由少量巨大的类组成
- 每个小类封装一个权责,只存在一个被修改的原因
- 只与少量其他类一起协同达成期望的系统行为
10.2.2 内聚
- 如果一个类中的每个变量都被每个方法所使用,则说明该类具有最大的 内聚性
- 内聚性高,则说明类中的方法和变量互相依赖、互相结合成一个逻辑整体
10.2.3 保持内聚性就会得到许多短小的类
- 当类丧失内聚性时,就应该被拆分
- 拆分之后的多个小类应该各自拥有内聚性
10.3 为了修改而组织
- 在整洁的系统中,通过对类进行组织,从而降低修改的风险
- 类应该遵循 开放-闭合原则( OCP ) :对扩展开放,对修改封闭
- 在理想系统中,通过扩展系统添加新特性,而不是修改现有代码
- 部件之间的解耦代表着系统中的元素互相隔离得很好,从而促使系统中的每个元素更容易被理解
- 通过降低耦合度,可以让代码更遵循 依赖倒置原则( Dependency Inversion Principle ,DIP )
- 类应该依赖于抽象,而不是依赖于具体细节