很明显,在一个体面的面向对象风格中,内部有很多主观判断。因此,针对同一问题的许多替代设计解决方案是可能的。为了能够确认任何 2 个设计是最好的,应该知道一些决定设计优劣的标准。随后是一些公认的判断设计优劣的标准。
联轴器指南:
2 个对象之间或一群对象之间的消息数量应该最少。对象之间的过度耦合被决定为标准样式并阻止重用。
凝聚力准则:
在 OOD 中,内聚性涉及 3 个级别:
- 各个方法的凝聚力:
每项技术的凝聚力都令人着迷,因为它假设每项技术都将是明确定义的表演。 - 类中数据和方法的内聚性:
这是令人着迷的,因为它确保关联对象执行动作的方式当然是对事物负责的,即它确保没有任何动作被错误地映射到关联对象。 - 整个类层次结构的内聚性:
类别之间方式的内聚性令人着迷,因为它促进了对象的封装。
层次结构和分解准则:
一个基类不能有太多的子类。如果从一个基类派生出的子类区域单元太多,那么掌握规划就变得很麻烦。事实上,在任何层次上,从一个基本类别派生出来的类别应该不会有 7±2 个。
保持消息协议简单:
复杂的消息协议区域单元是对象之间过度耦合的标志。如果一条消息需要相当多的三个参数,那么它就是危险风格的标志。
方法数:
具有超大范围方式区域单元的对象可能是额外的特定于应用程序并且难以理解 – 限制了它们的使用可能性。因此,对象不能有太多的方法。这可能是一个类别的质量。很可能具有七种方式的类别会出现问题。
继承树的深度:
一个类别在类继承层次结构中越深,它可以继承的方式范围就越大,创建它的方式也更先进。所以,传承树的巅峰,绝对不会是巨大的可怕。
每个用例的消息数:
如果在响应一条消息的非常连锁的动作中调用超大范围的对象区域单元的方式,则对象的测试和调试变得困难。因此,在一个非常系统中,一条消息不能以过多的消息生成和传输结束。
对一个类的响应:
这是该类别的关联实例将决定的最广泛的生活方式。如果相同的技术被称为相当一次,那么它只被计算为一次。对七种完全不同的方式进行相当调用的类别容易出错。