据我所知,在使用工厂方法时,我们过去常常通过调用工厂的静态方法来获取对象。例如 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/