根据 Kent Beck 的说法,如果一个设计遵循以下规则,它就是“简单”的:

    1. 运行所有测试:设计应该是可测试的,并且能够通过所有编写的单元测试和集成测试。这确保了设计在功能上是正确的,并且更改不会破坏现有功能。

    2. 不包含重复:设计应该避免代码重复,即DRY(Don’t Repeat Yourself)原则。重复的代码会使系统难以维护和扩展,因为相同的更改需要在多个地方进行。

    3. 表达程序员的意图:设计应该清晰地传达设计者的目的和决策原因。代码应该易于理解,使其他开发人员能够快速把握设计背后的理念和逻辑。

    4. 最小化类和方法的数量:设计应该尽量简洁,避免不必要的复杂性。这通常意味着系统中的类和方法数量尽可能少,每个都有明确的职责,并且没有多余的实体。

    这些规则共同促进了代码的可维护性、可读性和可扩展性,是实现“简单”设计的关键因素。简单性在这里并不意味着设计的原始或基本状态,而是指设计在满足系统要求的同时,达到了高度的清晰和效率。