类的组织

封装

我们喜欢保持我们的变量和实用函数尽可能小,但我们对此并不狂热。有时,我们需要将变量或实用函数设置为受保护的,以便它可以被测试访问。

类应该小

  • 第一规则:类应该小
  • 第二规则:类应该比第一规则更小

单一职责原则

类应该有一个职责 - 一个改变的理由

单一职责原则是面向对象设计中更重要的概念之一。这也是理解和遵循的简单概念之一。

内聚性

类应该有少量实例变量。类中的每个方法都应该操作一个或多个这些变量。一般来说,一个方法操作的变量越多,该方法与其类的内聚性就越高。每个变量都被每个方法使用的类具有最大的内聚性。

维持内聚性导致许多小类

仅仅将大函数拆分为小函数就会导致类的激增。

为变更组织

对于大多数系统来说,变化是持续的。每一次变化都使我们面临系统其余部分可能不再按预期工作的风际。在一个清洁的系统中,我们组织我们的类,以减少变化的风险。

隔离变更

需求会变化,因此代码会变化。我们在面向对象101中学到,有包含实现细节(代码)的具体类,还有只代表概念的抽象类。依赖于具体细节的客户端类在这些细节变化时处于风险之中。我们可以引入接口和抽象类来帮助隔离这些细节的影响。