类的组织
封装
我们喜欢保持我们的变量和实用函数尽可能小,但我们对此并不狂热。有时,我们需要将变量或实用函数设置为受保护的,以便它可以被测试访问。
类应该小
- 第一规则:类应该小
- 第二规则:类应该比第一规则更小
单一职责原则
类应该有一个职责 - 一个改变的理由
单一职责原则是面向对象设计中更重要的概念之一。这也是理解和遵循的简单概念之一。
内聚性
类应该有少量实例变量。类中的每个方法都应该操作一个或多个这些变量。一般来说,一个方法操作的变量越多,该方法与其类的内聚性就越高。每个变量都被每个方法使用的类具有最大的内聚性。
维持内聚性导致许多小类
仅仅将大函数拆分为小函数就会导致类的激增。
为变更组织
对于大多数系统来说,变化是持续的。每一次变化都使我们面临系统其余部分可能不再按预期工作的风际。在一个清洁的系统中,我们组织我们的类,以减少变化的风险。
隔离变更
需求会变化,因此代码会变化。我们在面向对象101中学到,有包含实现细节(代码)的具体类,还有只代表概念的抽象类。依赖于具体细节的客户端类在这些细节变化时处于风险之中。我们可以引入接口和抽象类来帮助隔离这些细节的影响。