Skip to content

Latest commit

 

History

History
21 lines (7 loc) · 995 Bytes

cn_3.3_assertions.md

File metadata and controls

21 lines (7 loc) · 995 Bytes

断言 Assertions

当操作的副作用仅仅隐含于其实现中时,具有大量调用关系的程序设计就会变成一团乱麻,很难搞清其中的因果关系。这时,理解程序的唯一方式就是沿着分支路径来跟踪程序的执行。这样就使封装失去了价值。由于不得不对具体执行过程进行跟踪,抽象也失去了意义。

因此:

要把操作的后置条件(post-condition)以及类和聚合的固定规则(invariants)描述清楚。如果所用的编程语言不直接支持断言,就编写自动化单元测试来实现断言。在符合项目开发过程规定的情况下,将断言写进文档或设计图。

建立概念一致的模型可以使开发人员推断出符合预期的断言,加快学习速度并避免代码逻辑中的矛盾。

断言为服务以及修改实体的操作定义了契约(contract)。

断言定义了聚合的固定规则。