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(); } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |