9、集合契约对设计的影响解析

集合契约对设计的影响解析

1. 对象生命周期与分类

对象的生命周期可分为三个可衡量的阶段:构造阶段、初始化阶段(从构造结束到首次进入集合)和集合后阶段(进入集合后直至被垃圾回收或程序终止)。基于对象在这些阶段中相等性的变化,可将对象分为以下四类:
| 对象类型 | 构造阶段 | 初始化阶段 | 集合后阶段 |
| — | — | — | — |
| 身份相等性(Identity as Equality) | | | |
| 初始化相等性(Initialised Equality) | x | | |
| 延迟初始化相等性(Late-initialised Equality) | x | x | |
| 重新索引(Reindexing) | x | x | x |

这里的“x”表示该阶段可能发生相等性的变化。

  • 身份相等性 :此类对象未定义哈希码方法,依赖引用相等性参与基于相等性的集合操作。
  • 初始化相等性 :定义了哈希码,且在构造完成后哈希码不再改变。
  • 延迟初始化相等性 :构造完成后但进入集合前哈希码会发生变化,构造阶段也可能改变。
  • 重新索引 :进入集合后哈希码会发生变化,例如离开基于哈希的集合、改变哈希码后再重新进入集合的对象,以及存储在不使用相等性的集合中且可随意改变的对象。

根据构造后相等性是否改变,还可将对象分为不可变相等性对象(身份相等性和初始化相等性)和

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值