java – 如何使用许多字段构建语义不可变的实体

我有25个字段的实体.它没有任何逻辑,只是存储值.
它是用抽象构建器构建的.我不想在构建之后改变这个实体.
我想让所有领域都是最终的,但我不想制作25-params构造函数.
在这种情况下我应该使用什么模式?
现在我考虑包本地setter,但它比最终字段中所有值设置的语法检查更糟糕.
我无法将这些字段打包在2-3个对象中
最佳答案
我看到三个主要选择:

>只有构建器知道的私有类,以及只有getter的公共接口.构建器使用接口而不是类来提供引用.
>有两个类,一个是可变的(这是一个信使类)和一个不可变的类,它在构造函数中接受可变的类并抓取它的字段.
>让类具有所有字段的合理默认值,然后让setter返回具有该字段集的类的新实例.这里的缺点是,要构建一个25字段的实例,最终会创建~24个一次性对象,具体取决于您需要更改多少合理的默认值. 😉

转载注明原文:java – 如何使用许多字段构建语义不可变的实体 - 代码日志