Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
什么';用工厂方法实例化Springbean的原因是什么?_Spring_Dependency Injection_Static Factory - Fatal编程技术网

什么';用工厂方法实例化Springbean的原因是什么?

什么';用工厂方法实例化Springbean的原因是什么?,spring,dependency-injection,static-factory,Spring,Dependency Injection,Static Factory,我知道Spring中有基于构造函数的注入和基于setter的注入。何时应该使用工厂方法注入bean?这是一个设计问题,取决于您的体系结构 如果您有带有静态工厂方法的类,那么为什么要添加不必要的构造函数来打破设计以适应DI框架呢 它是不灵活的,因此Spring支持两种方式 摘录自: 项目1:考虑静态工厂方法,而不考虑构造函数。 静态工厂方法优势: 他们有名字 它们不需要在每次被调用时创建新对象 它们可以返回其返回类型的任何子类型的对象 它们减少了创建参数化类型实例的繁琐性 静态工厂方法的缺点

我知道Spring中有基于构造函数的注入和基于setter的注入。何时应该使用工厂方法注入bean?

这是一个设计问题,取决于您的体系结构

如果您有带有静态工厂方法的类,那么为什么要添加不必要的构造函数来打破设计以适应DI框架呢

它是不灵活的,因此Spring支持两种方式


摘录自:

项目1:考虑静态工厂方法,而不考虑构造函数。 静态工厂方法优势:

  • 他们有名字
  • 它们不需要在每次被调用时创建新对象
  • 它们可以返回其返回类型的任何子类型的对象
  • 它们减少了创建参数化类型实例的繁琐性
静态工厂方法的缺点:

  • 当只提供静态工厂方法时,没有公共或受保护构造函数的类不能被子类化
  • 它们不容易与其他静态方法区分开来

这个工厂方法应该生产原型还是单例bean?戴蒙德,我相信我们可以在这个工厂中生产任何范围的beanway@Diamond,所有作用域都有初始化bean的阶段。您只指定它的构造方式。这里构造函数和静态方法没有太大区别。这有用吗?