加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

Java中的非公共顶级类

发布时间:2020-12-15 02:05:21 所属栏目:Java 来源:网络整理
导读:在 Java中创建顶级类非公共的原因是什么? 假设我们有Foo.java,可能会有 class Foo {} 要么 public class Foo {} 我知道前一个例子会有一些类 – 可见性问题(可能从其他包中看不到).但无论如何,有没有任何理由可以解释为什么某人可能会像第一个代码示例中那
在 Java中创建顶级类非公共的原因是什么?

假设我们有Foo.java,可能会有

class Foo {
}

要么

public class Foo {
}

我知道前一个例子会有一些类 – 可见性问题(可能从其他包中看不到).但无论如何,有没有任何理由可以解释为什么某人可能会像第一个代码示例中那样做?

UPD:我在前一个解决方案中看到了什么缺点:没有人关心它是非公开的.稍后可以通过同一个包中的其他公共类简单地扩展该类,然后,该类的非公共部分可能会为您带来可见性/访问问题.

解决方法

这是一个例子.
没有人需要知道我们的ConcreteDocument的存在.

DocumentIF.java

public interface DocumentIF {
}

ConcreteDocument.java

class ConcreteDocument implements DocumentIF {
}

DocumentFactory.java

public class DocumentFactory {
    public DocumentIF createDocument() {
        return new ConcreteDocument();
    }
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读