阅读Effective Java,使用静态工厂方法似乎有许多优点,而且缺点很少。通过静态工厂方法,我具体指的是以下
public class MyClass {
private MyClass() { ... };
public static MyClass getInstance() {
return new A();
}
}
来自Effective Java:
请注意,静态工厂方法与“设计模式”中的“工厂方法”模式不同[Gamma95,p。 107]。此项中描述的静态工厂方法在设计模式中没有直接的等效方法。
现在最好是始终遵循这种做法,还是仅限于此?
如果是的话?
这样做是否有点过分?
答案 0 :(得分:5)
通常,构造函数比工厂更简单,因此这是选择构造函数而不是工厂的主要原因。在情况需要时使用工厂,没有“默认情况下”。你应该做最简单的事情来解决你的问题,而且大部分时间都是构造函数。
答案 1 :(得分:2)
工厂方法使用对象从代码中抽象出对象的创建和配置。
如果所有这些都取决于对象的创建和初始化所涉及的复杂性。如果它们很简单则无需使用工厂模式。
如果它有点复杂(在使用它之前涉及很多初始化步骤)并且最好使用工厂模式。