维护一个大型系统时,以持续一致的、客观可验证的方式,将数据成员、类型、常量名字和其他标示符的名字区分开来,显然是好事。1.4.1节介绍了一些命名规则,在这里我们用三个设计规则和两个指南精炼地强调标识符的命名规则。
以字母顺序标识类数据成员的方法可以简洁地描述数据成员,并且这种标识符命名方法的价值超越了纯粹的风格领域。因此,把这个方法作为一个设计规则提出来。
次要设计规则
使用一个一致的方法(像d_前缀)突出类数据成员。
你也可选择使用s_来区分静态数据和实例数据。上述实践是一条次要设计规则,因为客户端程序将来不会处理这类问题(因为,根据2.2节,数据成员应该总是私有的)。
次要设计规则
使用一个一致的方法(像首字母大写)区分类型名字。
上述方法作为一条规则而不是一个指南提出来,因为这个方法是一个被广泛接受并可客观检验的标准。它一般可提高可读性,使得接口更容易理解,代码更容易维护。这个方法是一个次要规则,因为个别未遵守上述规则的实现也并不会对整个系统影响太大。
次要设计规则
使用一个一致的方法(像所有字母大写和添加下划线)识别诸如枚举、常量数据和预处理器常量等不变的值。
上述方法有助于区分常量(它是“无状态”的)和局部变量、成员(有状态的)变量。上述方法作为一个设计规则而不是作为一个指南提出来,因为它有助于提高可维护性,是客观可验证的,并且它要求所有常量无一例外地遵守此规则。
标识符名称必须一致;使用大写字母或下划线来分隔标识符单词,但不能同时使用大写字母和下划线。
上述方法也是客观可验证的,但不是每个人都相信它的功效,而且它很大程度上是风格问题。上述方法的作用是使标识符名称在某种程度上更易于记忆,并可对多数用户展示一种更专业的形象。在这里它是作为一条指南提出来的(特别是对于接口),但在实现中也默许存在某种程度的个性化方法(在本书中,我们采用大写字母标准)。
以相同方式使用的名称必须一致;特别是对于诸如迭代之类的循环设计模式,要采用一致的方法名称和运算符。
在一个大型系统提高整个接口的一致性可以增强可用性,然而实现接口一致性的难度也出乎意料。在大型项目中,通过让一些一流的开发者担任“接口工程师”来保证各个项目开发组之间的一致性,已被证明是有效的。容器类以及它们的迭代器,把自身功能留给模板实现类来实现(见10.4节),以保证一致性和对象无关性。