控制器应该是不可变的吗?

jpganz18

我已经知道什么是不可变的以及它是如何工作的,但大多数理论都适用于对象。

有一个不可变的控制器值得吗?

如果我的控制器是这样的怎么办

public class MyController {

    private MyService myService;

    public void doSomething(){
       myService.something();
    }

    public void setMyservice(final MyService myservice){
       this.myservice = myservice
    }
}

假设 MyService 是“不可变的”,是否值得通过移除 setter 并仅通过构造函数初始化它来使我的控制器“不可变”?

有人能给我一个理由为什么我应该这样吗?

亚当·西蒙

是的,让你的 Spring bean 不可变是值得的,你应该这样做。

Spring 文档包含以下几个原因:

Spring 团队通常提倡构造函数注入,因为它可以将应用程序组件实现为不可变对象,并确保所需的依赖项不为空。此外,构造函数注入的组件总是以完全初始化的状态返回给客户端(调用)代码。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章