对于抽象数据类型(Abstract Data Type,简称ADT),有两个值的空间:R,由真正实现的实质构成的、用于表示的值的空间;A,由设计该类型来支持的值构成的、抽象值的空间。简单点说,R是实现时域中的值,A是其代表的抽象意义的值,例如设计一个集合类,可以用数组的方式实现,R中的一个值可能是一个数组{a,b,c},对应的A中的值是一个集合包含了a,b,c三个元素。
关于R和A的映射关系满射,未必单射。
Abstract Function(抽象函数):从表示的值到抽象的值的映射,AF:R->A。个人的理解就是具体的实现代表了什么样的抽象概念。不是R中所有的值都在这个映射中,仍以上面的ADT为例,{a,a,b}就不在这个映射中,因为集合中的元素是不可以有重复的的。
Rep Invariant(表示不变性):从表示值到布尔值的映射,RI:R->boolean,对于表示值r,RI(r)为真当且仅当r被AF映射到一个抽象值,换句话说,RI告诉我们一个给定的表示值是否行为良好。换个角度看的话,也可以把RI视为一个集合,表示值中其AF被定义的元素构成的集合。
今天的文章Java Abstract Function and Rep Invariant分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/33580.html