3

这个问题来自我的Selenium question。在那个问题中,我正在使用工厂来创建对象,并且我可能错误地认为,如果我的类被工厂实例化,则它不会有构造函数。但是,在答案的评论中,MrTi 建议在构造函数中分配一些东西。

因此 - 工厂实例化的对象可以有构造函数吗?

4

2 回答 2

4

是的。您通常只是使构造函数仅对工厂可见。在 Java 中,这是通过将工厂与将要构建的类放在同一个包中并保持构造函数包私有(无访问修饰符)来完成的。

于 2013-09-19T09:20:48.383 回答
4

是的,他们可以而且应该这样做。但是当使用工厂时,您实际上想要控制对象的创建,因此必须以某种方式通过直接访问构造函数来防止其他代码创建对象,为此,您可以将工厂与您想要的类放在同一个包中创建对象并将构造函数的可见性设置为包保护。

于 2013-09-19T09:22:25.640 回答