我正在阅读《Effective Java》一书,同时在一家重度使用Spring Dependency Injection的商店工作。在阅读Bloch的书时,人们不禁会注意到他在类的不可变性方面所强调的重要性(他多次表明类应该尽可能不可变)。我无法避免地感到这与Spring Dependency Injection(以及大多数DI引擎)对javabeans标准的依赖形成了直接冲突。
读《Spring in Action》中关于DI的章节时,看起来会让Bloch感到不舒服,因为它们由在您的视野之外实例化的对象组成的可变类可能本身是可变的。
是否是Bloch的思想对于Spring来说太新颖了?Spring模型失灵了吗?Bloch对于不可变性的立场只适用于编写库代码吗?在编写Spring代码时,我应该编写具有许多getter和setter的灵活对象或者将所有东西都加载到构造函数中呢?