gpt4 book ai didi

spring - 使用工厂方法实例化 Spring bean 的原因是什么?

转载 作者:行者123 更新时间:2023-12-02 06:30:52 24 4
gpt4 key购买 nike

我知道Spring中有基于构造函数的注入(inject)和基于setter的注入(inject)。什么时候应该使用工厂方法来注入(inject) Bean?

最佳答案

这更像是一个设计问题,取决于您的架构。

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

它不灵活,因此 Spring 支持这两种方式。

<小时/>

摘自Joshua Bloch “Effective Java” :

Item 1: Consider static factory methods instead of constructors.

Static factory methods advantages:

  • They have names.
  • They are not required to create a new object each time they are invoked.
  • They can return an object of any subtype of their return type.
  • They reduce verbosity of creating parameterized type instances.

Static factory methods disadvantages:

  • When providing only static factory methods, classes without public or protected constructors cannot be subclassed.
  • They are not readily distinguishable from other static methods

关于spring - 使用工厂方法实例化 Spring bean 的原因是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48595306/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com