我已经阅读并听到了很多关于不变性的好东西,所以我决定在我的一个爱好项目中尝试一下.我将所有字段都声明为readonly,并使所有通常会改变对象的方法返回一个新的修改版本.
它运行良好,直到我遇到一种情况,一种方法应该通过外部协议返回有关对象的某些信息而不修改它,但同时可以通过修改内部结构来优化.特别是,这在联合查找算法中使用树路径压缩时会发生.
当用户调用时int find(int n),对象显示为未修改为局外人.它在概念上代表相同的实体,但它的内部字段被改变以优化运行时间.
我怎样才能以不可变的方式实现它?