在Spring Framework中使用静态工厂方法实例化bean有什么优势和用途?
发布于 2010-03-25 20:49:52
使用静态工厂方法实例化bean的优势不一定来自Spring,它只是一个IoC容器。
来自Effective Java Idiom#1的一些建议,提供静态工厂与从构造函数创建对象相比具有以下优势:
与Constructor.
我发现这个习惯用法的最大优点是具有相似签名的命名方法。
例如,如果您有:
Person {
String name;
String[] booksAuthored;
//... constructors, getters, setters
}然后,您可以通过调用以下命令来创建实例:
Person joshTheProgrammer = Person.createByName("Joshua Bloch");或
Person joshTheAuthor = Person.createByBookName("Effective Java");在使用构造函数时不能这样做,因为只能有一个接受字符串的构造函数。
发布于 2010-03-26 20:34:52
我想补充的是,也许有些第三方库仅仅依赖于使用工厂方法。因此,您可能不希望(甚至不能)将代码更改为简单的DI兼容。因此,在这种情况下,您可以将遗留代码与依赖注入集成在一起,尽管它最初并不是设计用于此类场景的。
https://stackoverflow.com/questions/2515367
复制相似问题