当操作的副作用仅仅隐含于其实现中时,具有大量调用关系的程序设计就会变成一团乱麻,很难搞清其中的因果关系。这时,理解程序的唯一方式就是沿着分支路径来跟踪程序的执行。这样就使封装失去了价值。由于不得不对具体执行过程进行跟踪,抽象也失去了意义。
因此:
要把操作的后置条件(post-condition)以及类和聚合的固定规则(invariants)描述清楚。如果所用的编程语言不直接支持断言,就编写自动化单元测试来实现断言。在符合项目开发过程规定的情况下,将断言写进文档或设计图。
建立概念一致的模型可以使开发人员推断出符合预期的断言,加快学习速度并避免代码逻辑中的矛盾。
断言为服务以及修改实体的操作定义了契约(contract)。
断言定义了聚合的固定规则。