Java包和类
发布时间:2020-12-14 19:22:10 所属栏目:Java 来源:网络整理
导读:我正在用Java构建一个非常简单的库,它将打包在一个Jar中.它应该只暴露一个类:世界. World类使用Block类的子类,它位于同一个包(com.yannbane.a)中,并且本身不提供很多功能,但需要进行扩展.我计划创建另一个包com.yannbane.a.blocks,它将包含所有块类型(子类)
我正在用Java构建一个非常简单的库,它将打包在一个Jar中.它应该只暴露一个类:世界. World类使用Block类的子类,它位于同一个包(com.yannbane.a)中,并且本身不提供很多功能,但需要进行扩展.我计划创建另一个包com.yannbane.a.blocks,它将包含所有块类型(子类). 因此,目录/包结构应如下所示:
但是,为了使Block的子类实际扩展Block类,我需要将Block类设为public.这破坏了我的目标,即让Jar文件只暴露一个类World.我还需要将子类公开,以便World可以使用它们. 我如何保留这个包和目录结构,但仍然让我的Jar只公开World类,而不是其他类? 最佳答案
如果这是封装问题,并且您想要向世界公开的所有内容都是“World”类,那么未曝光的类是否位于同一个包中或者它们是同一个包中的内部类并不重要.
无论如何,API的用户都无法访问它们.我认为封装比你想要提供文件的“逻辑”组织更重要.因为如果您在同一个包中找到所有类,那么您将不会遇到这些问题,并且您将达到所要求的封装级别.也许Java告诉你的是这些类本质上是相关的,你应该将它们全部放在同一个包中. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |