java - 将构造函数隐藏在包之外

标签 java oop

我试图将类构造函数隐藏在包范围之外(以及其他一些 setter ),并强制潜在的包用户仅通过其构建器获取此特定类(出于清晰和验证原因)。

到目前为止,我已经通过将该类及其构建器放入同一个包并声明我想要隐藏的所有方法的包可见性来实现此目标。然而,这有一些缺点。它施加了更严格的包结构,并限制了用户扩展类构建器的可能性。

我对任何替代解决方案或模式感到好奇?不久前我听说过关于在 Java 中引入“模块”可见性修饰符的谣言(我认为这可以解决问题),但我猜他们放弃了这个想法。

最佳答案

- 使用 protected access-modifier 来限制对该包外部的构造函数代码的访问。

例如:

public class FilePro {

    protected FilePro(){      // This block is accessible only
                          // within this package

    }

}

关于java - 将构造函数隐藏在包之外,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13529411/

相关文章:

java - 等价于cin.tie(0)在Java中吗?

java - 找不到用@Named#value 注释的方法

oop - 在Golang中用一个struct,把它当成一个类来解决依赖不好吗?

programming-languages - 为什么smalltalk不是一种功能编程语言?

java - 如何将struts.xml中定义的Struts2 Action设置为PortletURL

java - Oracle Java 存储库无法编译

java - testcontainers - 由于测试失败,maven 构建失败

PHP OOP 在 create_function 中调用私有(private)函数作为回调

java - OOD - 将配置传递给外部类的最佳方法

c++ - 避免静态和动态类型转换