3.5 ADT和OOP中的“等价性”

笔记:

软件构造3-5笔记
软件构造3-5笔记

Summary

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

相关文章:

  • 2021-08-04
  • 2021-12-01
  • 2021-04-16
  • 2021-07-27
  • 2022-01-09
  • 2021-07-31
  • 2021-07-06
  • 2021-12-21
猜你喜欢
  • 2021-10-05
  • 2021-04-05
  • 2021-05-12
  • 2021-12-11
  • 2021-08-05
  • 2021-07-03
  • 2021-06-04
相关资源
相似解决方案