软件构造3-5笔记

3.5 ADT和OOP中的“等价性”

笔记:

软件构造3-5笔记

Summary

  • 等价性是实现抽象数据类型的一部分
    • 等价关系:自反、对称、传递
    • 等价性和hashcode必须彼此一致,这样在使用哈希表(如HashSet和HashMap)的数据结构才能正常工作
    • 抽象函数是不可变数据类型等价性的基础
    • 引用等价是可变数据类型等价性的基础,这是确保随时间变化的一致性和避免破坏哈希表的rep不变量的唯一办法
  • Safe from bugs
    • 正确实现等价性和哈希码是使用集合数据类型的必要条件
  • Easy to understand
    • 用户和其他程序员期待我们实现一个适当的等价性判断
  • Ready for change
    • 正确实现的不可变类型的等价性将引用等价和对象等价分开,从而对客户端隐藏了关于值是否共享的决策。对于可变类型,选择行为等价性而不是观察等价性可以帮助避免意外的别名错误。

来源:weixin_45691110

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2020年3月1日
下一篇 2020年3月1日

相关推荐