微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

具有私有依赖类的Java公共类

Java中一直困扰我的一件事是:

如何创建一个应该由下游消费者使用的单个公共类,然后很好地组织它依赖于包中的类?

例如(有点人为),我有一个依赖于LdapPersistenceHelper和DBPersistenceHelper的UserDao类. UserDao类位于一个名为com.company.dao的包中,我希望这两个帮助程序位于一个名为com.company.dao.persistencehelper的包中.但是,我不想让这两个助手足够通用,以便其他人可以使用它们.我怎么样?如果我让帮助者“受保护”(真的,没有修饰符),那么我无法从UserDao到达它们.如果我公开,其他人可能会使用它们.

解决方法

根本问题是你正在尝试使用包来“很好地组织事情”.创建Java包时,有两个设计目标:(1)全局唯一类命名,以及(2)促进使用protected / default访问修饰符.

您被限制为具有与包匹配的源文件夹结构的事实不可避免地导致尝试使用它们来创建“漂亮/有组织的文件夹结构”.但这不是它的创建原因,因此,它不能很好地与它创建的访问修饰符一起支持.

编辑:顺便说一句,我不是以某种方式传递判断力.我意识到我的第一句话可能听起来很关键.许多项目合法地选择有组织和可维护的结构,而不是试图从受保护的访问中挤出一些额外的感知价值.如果帮助程序实用程序是公共的,那真的很糟糕吗?如果你不相信其他开发人员有权不滥用它,他们是否可以信任不仅仅改变访问修饰符?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐