软件构造-设计规约说明

  • 理解待决定(underdetermined)规格说明,并能够辨别评估待决定的规格说明。
  • 理解声明性的规格说明和操作性的规格说明之间的区别,并能够写出声明性的规格说明。
  • 理解前置条件、后置条件、及规格说明的“强度”,并能够比较两个规格说明之间的强度。
  • 能够写出逻辑严密、前后连贯的规格说明。

  • 不变量(invariants)
  • 表示暴露(representation exposure)
  • 抽象函数(abstraction functions)
  • 表示不变量(representation invariants)

不变量

回想我们之前讨论过的关于ADT的内容,什么设计会产生好的ADT?其中最重要的一点就是它会保护/保留自己的不变量。 不变量是一种属性,它在程序运行的时候总是一种状态,而不变性就是其中的一种:一旦一个不变类型的对象被创建,它总是代表一个不变的值。当一个ADT能够确保它内部的不变量恒定不变(不受使用者/外部影响),我们就说这个ADT保护/保留自己的不变量.

当一个ADT保护/保留自己的不变量时,对代码的分析会变得更简单。例如,你能够依赖字符串不变性的特点,在分析的时候跳过那些关于字符串的代码;或者当你尝试基于字符串建立其他的不变量的时候,也会变得更简单。与此相对,对于可变的对象,你将不得不对每一处使用它的代码处进行审查。

可变类型的不可变包装

Java的c

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值