java - 工厂方法,为什么我们使用静态调用从工厂获取对象

标签 java design-patterns factory-pattern static-factory

据我所知,在使用工厂方法时,我们过去常常通过调用工厂的静态方法来获取对象。例如 Foo f = Factory.getObj() ..该方法是设为静态,因为我们不需要在调用 getObj 方法之前创建对象,该方法实际上会返回我想要的具体对象。但是为什么使用 new Factory() 创建 Factory 类的实例然后调用 req getObj 方法并不常见? 抱歉,如果这听起来很愚蠢,但为什么将工厂方法设为静态是很常见的呢?

静态工厂和工厂是两个不同的东西吗?

最佳答案

您应该阅读Effective Java Item 1: Consider static factory methods instead of constructors。那里有详细的解释。此外,经典的工厂方法设计模式 http://en.wikipedia.org/wiki/Factory_method_pattern不是静态的。所以它可以双向使用。

关于java - 工厂方法,为什么我们使用静态调用从工厂获取对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18464643/

相关文章:

java - 对象池、IoC 和工厂 : When and Where?

java - RequestMapping 值属性作为字符串变量

java - 使用动态编程计算给定字符串中的组合

javascript - javascript中具有异步回调模式的无限循环

mysql - 在数据库 : caching database records into domain logic V/S using MySQL full-text search? 中搜索文本

java - 用于工厂模式的全局函数或没有名称 java 的函数

java - 用于 Java 的 CSV API

JavaFX - 在 ChangeListener 事件中显示警报对话框

c# - 包装 C# 类以通过公共(public)接口(interface)与多态性一起使用

c++ - 难忘的工厂 : When is constructor instantiated?