Java对象工厂可以用作构造函数吗?

Java对象工厂可以用作构造函数吗?,java,constructor,factory,Java,Constructor,Factory,我对Java非常陌生,所以希望这个问题不会太愚蠢 根据Java文档:“对象工厂是对象的生产者。它接受关于如何创建对象的一些信息,例如引用,然后返回该对象的实例。” 那个实例怎么可能是构造函数的结果呢 下面是一些(完全没有意义的)示例代码,它演示了我试图构建的类层次结构(使用简单的整数参数(如“1 2 3”)调用它可以理解这一点): 我无法理解您的主要问题,因为java对象工厂是java的业务,我认为我们不能用它做任何事情,尽管我可以尝试回答您关于实例和构造函数的问题 java中的构造函数是您与类

我对Java非常陌生,所以希望这个问题不会太愚蠢

根据Java文档:“对象工厂是对象的生产者。它接受关于如何创建对象的一些信息,例如引用,然后返回该对象的实例。”

那个实例怎么可能是构造函数的结果呢

下面是一些(完全没有意义的)示例代码,它演示了我试图构建的类层次结构(使用简单的整数参数(如“1 2 3”)调用它可以理解这一点):


我无法理解您的主要问题,因为java对象工厂是java的业务,我认为我们不能用它做任何事情,尽管我可以尝试回答您关于实例和构造函数的问题

java中的构造函数是您与类对话的方式,即使您没有定义类的构造函数,编译器也会为您的类创建一个具有默认值的默认构造函数(例如,布尔值为false等),我猜,当您想要用特定的方式创建与类的连接时,您需要使用特定的构造函数,否则编译器总是会提供默认值


也许你想问,为什么我们必须在子类构造函数中的任何东西之前使用super(),原因也是一样的,即需要在子类构造函数之前调用父类的构造函数。这将确保如果在构造函数中调用父类上的任何方法,则父类已正确设置

请解释你想做什么

但我想回答你的问题

构造函数在创建新Java对象时使用。使用
newsomeobject()
时,编译器使用构造函数

SomeObject(){ 
    // some logic here
}
使用SomeObject.class创建对象。对象在整个生命周期中如何创建和维护取决于JVM。你可以在这里找到更多信息

对象工厂也用于创建对象,但反过来它们使用对象构造函数来实例化其中的对象(正如您已经做的那样)。 对象工厂用于将对象创建的逻辑委托给一个中心位置,这样代码就不会重复并且组织良好。 阅读更多关于对象工厂的信息


还有一件事,您不必在每个实现的类中实现
String Class()
方法
SomeObject.class.toString()
会帮你做的。

不,不可能。你到底想做什么?@Johanneskun这不是我想要的答案,但为了简单地回答“这能做到吗?”这个问题,这是我需要的答案。谢谢。你可以尝试使用委托,这将“允许”这样的事情。将每个方法委托给工厂创建的对象。@JohannesKuhn是的,这正是我所采取的方法。谢谢。这是如何回答这个问题的?他问实例怎么可能是构造函数的结果?很好的解释,谢谢。因为我相信Johannes Kuhn对“不,不可能”的直截了当的回答是正确的,所以我将改变代码的组织方式,我不想再花更多的时间来解释我“曾经”试图做的事情。我认为我的代码片段在这方面可能已经足够清楚了。
SomeObject(){ 
    // some logic here
}