《代码整洁之道》——(9)类
目录
9.1、类的组织
遵循标准的Java约定,类应该从一组变量列表开始。如果有公共静态常量,应该先出现。然后是私有静态变量,以及私有实体变量。很少会有公共变量。
9.2、类应该短小
类应该短小。对于函数,我们通过计算代码行数衡量大小。对于类,我们采用不同的衡量方法,计算权责。类的名称应当描述其权责。
类的名称应当描述其权责。如果无法为某个类命以精确的名称,这个类大概就太长了。类名越含混,该类越有可能拥有过多权责。
9.2.1、单一权责原则
单一权责原则(SRP)认为,类或模块应有且只有一条加以修改的理由。该原则既给出了权责的定义,又是关于类的长度的之道方针。
鉴别权责常常帮助我们在代码中认识到并创建出更好的抽象。
系统应该由许多短小的类而不是少量巨大的类组成。每个小类封装一个权责,只有一个修改的原因,并与少数其他类一起协同达成期望的系统行为。
9.2.2、内聚
类应该只有少量实体变量。类中的每个方法都应该操作一个或多个这种变量。通常而言,方法操作的变量越多,就越黏聚到类上。如果一个类中的每个变量都被每个方法所使用,则该类具有最大的内聚性。
一般来说,创建这种极大化内聚类是既不可取也不可能的;另一方面,我们希望内聚性保持在较高位置。内聚性高,意味着类中的方法和变量互相依赖、互相结合成一个逻辑整体。
保持内聚性就会得到许多短小的类
9.3、为了修改而组织
隔离修改
需求会改变,所以代码也会改变。具体类包含实现细节,而抽象类则只呈现概念。
依赖倒置原则(DIP)
DIP认为类应当依赖于抽象而不是依赖于具体细节。