3.5 ADT和OOP中的“等价性”
笔记:
Summary
- 等价性是实现抽象数据类型的一部分
- 等价关系:自反、对称、传递
- 等价性和hashcode必须彼此一致,这样在使用哈希表(如HashSet和HashMap)的数据结构才能正常工作
- 抽象函数是不可变数据类型等价性的基础
- 引用等价是可变数据类型等价性的基础,这是确保随时间变化的一致性和避免破坏哈希表的rep不变量的唯一办法
- Safe from bugs
- 正确实现等价性和哈希码是使用集合数据类型的必要条件
- Easy to understand
- 用户和其他程序员期待我们实现一个适当的等价性判断
- Ready for change
- 正确实现的不可变类型的等价性将引用等价和对象等价分开,从而对客户端隐藏了关于值是否共享的决策。对于可变类型,选择行为等价性而不是观察等价性可以帮助避免意外的别名错误。
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!