We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
1 parent a2a54aa commit c8fcee9Copy full SHA for c8fcee9
docs/book/16-Validating-Your-Code.md
@@ -443,7 +443,7 @@ assert invariant();
443
444
**3**. 如果你确信方法主体没有把对象改成无效状态,则可以禁用方法调用末尾的不变性检查。可以通过白盒单元测试(通过访问私有字段的单元测试来验证对象状态)来验证这一点。尽管,它可能没有调用 **invariant()** 那么稳妥,可以将不变性检查从运行时测试 “迁移” 到构建时测试(通过单元测试),就像使用后置条件一样。
445
446
-**4**. 最后,万不得已,禁用前置条件检查。这是最不安全、最不明智的选择,因为尽管你知道并且可以控制你自己的代码,但是你无法控制客户端可能会传递给方法的参数。然而,**(A** 在迫切需要性能和概要分析的情况下,将前置条件检查作为瓶颈,**(B)** 并且你有某种合理的保证,即客户端不会违反前置条件(如你自己编写客户端代码的情况)。禁用前置条件检查是可以接受的。
+**4**. 最后,万不得已,禁用前置条件检查。这是最不安全、最不明智的选择,因为尽管你知道并且可以控制你自己的代码,但是你无法控制客户端可能会传递给方法的参数。然而,**(A)** 在迫切需要性能和概要分析的情况下,将前置条件检查作为瓶颈,**(B)** 并且你有某种合理的保证,即客户端不会违反前置条件(如你自己编写客户端代码的情况)。禁用前置条件检查是可以接受的。
447
448
不应该直接删除检查的代码,因为只需要禁用检查(添加注释)。这样如果发现错误,你可以轻松地恢复检查以快速发现问题。
449
0 commit comments