类的组织:
(1)标准的java约定:类由一组列变量开始(公共静态常量、私有静态变量、私有实体变量),很少有公共变量。
然后是公共函数,把由某个公共函数调用的私有工具函数紧随在该公共函数后面,这符合了自顶向下原则。
(2)封装
类应该短小:
函数:通过代码行数衡量大小
类:通过权责来衡量 —— 单一权责原则(SRP)
类的名称应该描述其权责,类名正是判断类的长度的第一个手段。如果无法为某个类命以精确的名称,这个类大概就太长了。类名越含混,该类越有可能拥有过多的权责。
系统应该由许多短小的类而不是少量巨大的类组成。每个小类封装一个权责,只有一个修改的原因,并与少数其他类一起协同成期望的系统行为。
内聚:
内聚性高:类中的方法和变量相互依赖、互相结合成一个逻辑整体。
当类丧失了内聚性,就需要拆分它。将大函数拆分为许多小函数,往往也是将类拆分为许多个小类的时机。程序会更有组织,也会拥有更为透明的结构。
为了修改而组织:
在整洁的系统中,对类进行组织,以降低修改的风险(通过扩展而非修改现有的代码来添加新的特性)。
隔离修改:遵循依赖倒置原则(DIP),应该依赖于抽象而非具体细节。