Java 包组织和访问修饰符
Java package organization and access modifier
因此,我正在努力整理 类 和包裹。我有很多 类,所以我目前正在将它们分类到相应的包中。
现在我有以下情况 2 类:
具有 'not public' 构造函数的一个:
package example;
public class File {
File() { // constructor should not be public
}
// stuff...
}
一个使用另一个构造函数:
package example.specialfiles;
import example.File;
public class CatalogFile {
private File wrappedFile;
CatalogFile() {
wrappedFile = new File();
}
// stuff...
}
在 eclipse 中看起来像 this。
显然不能在CatalogFile 中调用File-constructor,因为它位于另一个包中。
因为没有 c#-like internal
我能想到的唯一可行的解决方案是将它们都放在同一个包中,这在我看来打破了包的目的。
是否有任何其他解决方案或解决方法来独立于包结构在 Eclipse 中组织 类?
如果你不想让别人实例化你的文件(选择更好的名字),你应该放在同一个包中。是的,它可能很乱,但很简单。
如果你想对其他人隐藏你的构造函数,你可以创建一个 getInstance() 方法来为你创建你的对象(工厂方法模式),并且在该方法中你可以检查调用者是否有权创建.例如 Java 反射 API.
因此,我正在努力整理 类 和包裹。我有很多 类,所以我目前正在将它们分类到相应的包中。 现在我有以下情况 2 类:
具有 'not public' 构造函数的一个:
package example;
public class File {
File() { // constructor should not be public
}
// stuff...
}
一个使用另一个构造函数:
package example.specialfiles;
import example.File;
public class CatalogFile {
private File wrappedFile;
CatalogFile() {
wrappedFile = new File();
}
// stuff...
}
在 eclipse 中看起来像 this。
显然不能在CatalogFile 中调用File-constructor,因为它位于另一个包中。
因为没有 c#-like internal
我能想到的唯一可行的解决方案是将它们都放在同一个包中,这在我看来打破了包的目的。
是否有任何其他解决方案或解决方法来独立于包结构在 Eclipse 中组织 类?
如果你不想让别人实例化你的文件(选择更好的名字),你应该放在同一个包中。是的,它可能很乱,但很简单。
如果你想对其他人隐藏你的构造函数,你可以创建一个 getInstance() 方法来为你创建你的对象(工厂方法模式),并且在该方法中你可以检查调用者是否有权创建.例如 Java 反射 API.