使用来自外部模块的包私有构造函数实例化类

时间:2015-07-20 12:40:13

标签: java

我想使用package-private构造函数,以防止从外部实例化某个对象。应该能够实例化该类的唯一一个是工厂类,它位于同一个包中。

我担心的是,如果我的应用程序被编译和密封,那么唯一可能的方法是提供具有包私有范围的新类,这可以由同一工厂访问(或者为什么不是工厂的新实现) ),将模仿引用我的密封库的项目中与包完全相同的路径。

虽然这绝不是不可能的,但我只是想知道它是否应该被认为是一种好的做法。您如何看待在这个意义上使用的包私有范围?

1 个答案:

答案 0 :(得分:0)

它应该以这种方式工作。我没有另外的方法来实现这一目标。

但是,恕我直言,这样做往往不是很有建设性。可能存在禁止其他预期使用的极端情况,但总的来说,我认为您应该尝试建立工厂,因为它易于使用并使人们相信。 如果您的工厂不可扩展,人们可能最终在“您的”包中创建课程,只是为了访问您想要的课程。