Java中是否可以有一个构造函数返回another类的实例,而不是构造/返回自身?
有点像
public class Container {
private static Container cachedContainer = new Container(5,false);
private int number;
public Container(int number, boolean check) {
if (number == 5 && check) {
return cachedContainer; // <-- This wouldn't work
}
this.number = number;
}
}
在该示例中,如果您创建一个包含数字 5 的对象(并使用“check”标志),它将“中断”构造,并为您提供一个已包含 5 的预先存在的对象。任何其他数字都不会导致这种情况中断。
不,那是静态的地方工厂方法模式 http://en.wikipedia.org/wiki/Factory_method_pattern进来
您可以在静态工厂方法中进行自定义计算并确定是否创建实例
考虑这个作为你的例子:
public static Container createContainer(int number, boolean check) {
if (number == 5 && check) {
// returned cached instance
}
// construct new instance and return it
}
来自有效的java
第 1 项:考虑静态工厂方法而不是构造函数
Summary:
- 可以有名称以便与客户进行清晰的沟通
- 您可以执行自定义逻辑,而不必每次都创建实例
- 你可以返回一个子类型
Also See
- 如何创建具有多个使用相同参数类型的构造函数的类 https://stackoverflow.com/questions/19643989/how-to-create-a-class-with-multiple-constructors-that-use-the-same-parameter-typ
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)