我熟悉不变性并且可以设计不变性类,但是我大部分都是学术知识,缺乏实践经验
请参考上面的链接图像(尚未嵌入)
从下往上看
学生需要一个新地址
我们并没有真正改变学生,而是创建了一个包含新地址的新学生。
mutator方法返回这个新对象
问:假设mutator调用来自一个不可变的对象,该新对象将如何处理?
不能将新学生保存在讲座中,因为讲座也是不可变的
所以我们也需要一个新的讲座,其中包括新的学生
但是在哪里保存新的讲座?
当然,在新学期,它在哪里结束?
至少可以通过使用组件外观模式来断开该链,该组件可以处理所有新对象的创建,而不必通过整个链转发呼叫
问题:这在哪里停止?不必在某个地方至少有一个可变对象才能保存最顶层的实例吗?
慕娘9325324
相关分类