[英]Should I always use static factory methods instead of constructors?
阅读Effective Java,使用静态工厂方法似乎有很多优点,而且缺点很少。 通过静态工厂方法,我具体指的是以下内容
public class MyClass {
private MyClass() { ... };
public static MyClass getInstance() {
return new A();
}
}
来自Effective Java:
请注意,静态工厂方法与“设计模式”中的“工厂方法”模式不同[Gamma95,p。 107]。 此项中描述的静态工厂方法在设计模式中没有直接等效项。
现在最好总是遵循这种做法,或者只是有时候?
如果是这样的话?
这样做是否有点矫枉过正?
通常,构造函数比工厂更简单,因此这是选择构造函数而不是工厂的主要原因。 在情况需要时使用工厂,没有“默认情况下”。 你应该做最简单的事情来解决你的问题,而且大部分时间都是构造函数。
工厂方法使用对象从代码中抽象对象的创建和配置 。
如果所有这些都取决于创建和初始化对象所涉及的复杂性。 如果它们很简单则无需使用工厂模式。
如果它有点复杂(在你使用它之前涉及很多初始化步骤)并且最好使用工厂模式。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.