【问题标题】:How to make a class containing series of Mutable classes Immutable?如何使包含一系列可变类的类不可变?
【发布时间】:2016-10-08 03:18:03
【问题描述】:

我知道如何使类的对象不可变的基本规则。但是,我的要求是这样的。假设我有一个名为 School 的班级。学校有可变班级房间。房间有可变班级学生。学生有可变的班级表现等等。没有一个类实现 Serializable。现在我的要求是让类 School 不可变。另外,如果明天 School 有另一个 Mutable 类链(比如说另一个可变类 Building),我需要保留 School 的不可变性而不需要太多代码更改。

我知道这个要求会导致无限循环,但是说在 5 级之后,我们可以停止创建新对象以保持不变性。

我们可以在这里使用反射吗?或者有没有其他办法?

【问题讨论】:

  • 我们先创建类,然后创建对象。所以我会说make a class immutable

标签: java immutability


【解决方案1】:

除了拥有每个类的不可变版本并一直复制它们之外,没有其他真正的选择。

这会很糟糕。

从一开始就让所有类型不可变要容易得多。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-20
    • 1970-01-01
    • 1970-01-01
    • 2020-12-11
    • 1970-01-01
    相关资源
    最近更新 更多