1
我想使bean不可变并且传统方法是使所有字段都为final
并在构造函数中设置它们的值。将可变对象转换为不可变对象
在我看来这很好,除非有很多领域需要通过一些复杂的逻辑来相互依赖地计算,或者当多个服务需要参与设置值。
工厂是另一种方法,但我不能拿出一个整洁的模型,避免太多的代码。
我想要做的是创建一个可变的bean实例,一旦它完全填充,我想“烘烤”它,即使它不可变。
有没有办法来改变在运行时更改的字段从non-final
到final
实例没有子等
我相当肯定不能用标准的Java /反射只是这样做,但我怀疑它可能可以使用一些字节码更改,如javassist等。
一个漂亮整洁的工厂模式可能会蜱太...
听起来你正在寻找的“建设者”的格局 – tddmonkey
为什么不计算_outside_你豆?参与设置值的多种服务看起来有点像你可能能够改进你的结构。 – Marvin
看看“Person.java with Nested Person.Builder”这里http://www.javaworld.com/article/2074938/core-java/too-many-parameters-in-java-methods-part-3- builder-pattern.html - 你想要什么? –