软件构造心得(6)有关于Invariant的一点说明

有关Invariant

概念(notion)

invariant,中文意思是不变性。是软件构造中ADT相关的一个概念。不变量的意思就是在程序的任何阶段都不会改变的一个抽象的性质举例说明,immutability就是程序中一个典型的不变量。(Immutability is one crucial invariant: once created, an immutable object should always represent the same value, for its entire lifetime)
不变量是由ADT来维护的,所以不依赖于任何的客户端的使用限制,即无论用户第几次使用,怎么使用,这些量的数值都不会发生任何的改变。
不变性是ADT应该具有的最重要性质之一.

“The most important property of a good abstract data type is that it preserves its own invariants.”

为什么要引入和维护不变性

不变性便于我们在使用时做出基本的假设。比如string数据类型,当我们在其周围发现bug的时候,我们不会去深入观察其内部是否出现了问题,因为其保证了不可变这一不变性,我们也相信这一不变性。所以我们就可以肯定不会出现我改了一处,其他变量和模块会连带的变动。当我们自己实现ADT的时候,如果我们无法保证这些不变性,那么我们就无法为使用它的人提供任何保障和假设的依据。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值