ADT的表示独立性,测试ADT的方法,不变量,RI与AF

本文探讨了抽象数据类型(ADT)的表示独立性,强调ADT内部表示变化不应影响外部规范和客户端。介绍了测试ADT的策略,包括测试创建者、生产者、修改者和观察者。不变量作为ADT的重要属性,维持程序正确性,并讨论了表示泄露及其解决方案,如使用防御性拷贝和不可变对象。还阐述了表示不变量(Rep Invariant, RI)和抽象函数(Abstraction Function, AF)的概念,以及它们在设计ADT内部表示时的角色。" 85112814,1219575,SVN中文包安装问题及解决步骤,"['SVN', '语言包', '安装教程']
摘要由CSDN通过智能技术生成

1.    表示独立性

    client使用ADT时无需考虑内部如何实现,ADT内部表示的变化不应影响外部spec与client

    除非ADT的操作指明了具体的pre-condition和post-condition,否则不能改变ADT的内部

    表示,因为spec规定了client和和implementer之间的契约。

2.    测试ADT的方法:

    (1)测试creators,producers和mutators:调用observers来观察这些operations的结

            果是否满足spec;

    (2)测试observers:调用creators,produces和mutators等方法产生或改变对象,来

            看结果是否正确。

        例如:测试构造的String类ADT:MyString

        有测试策略:

        

        

3.    不变量(invariants):

(1)    含义:保持不变量,是一个好的ADT的重要属性

            不变量:在任何时候总是true

                -Immutability是一个至关重要的不变量:一但不可变对象被创造,

                  其在整个生命周期中,总是表现出相同的价值。

                -由ADT来负责其不变量,而与client端的任何

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值