有关从兄弟包中访问类的经验法则

时间:2016-08-08 08:31:44

标签: java package packages

是否有任何经验法则与您的包结构是否允许从兄弟包中的另一个类访问类有关。

示例我有一个代表登录页面的类:

project.page.login.LoginPage

代表帐户主页的类:

project.page.account.AccountHome

两个页面都访问项目的标准chrome(页眉,页脚,菜单内容和BasePage),最好是将类放在兄弟包中,例如project.page.chrome

project.page.chrome.BasePage
project.page.chrome.Menu
project.page.chrome.Footer
project.page.chrome.Header

或在父包中:

project.page

e.g。

project.page.BasePage
project.page.chrome.Menu
etc

我知道这是一个风格的经验法则,在某种程度上是主观的 我想知道的是,对于这类事情是否存在普遍接受的规则。如果是这样,那么与每种方法相关的问题或好处背后的原因是什么。

进一步吸血鬼的答案。 我的问题不是你是否可以将类从一个兄弟包引用到另一个兄弟包。是否应该以及原因是什么(无论哪种方式)。

5 个答案:

答案 0 :(得分:1)

没有父包或儿童包这样的东西。 Java中的每个包都是完全独立的。让它们按层次命名并在文件系统中存储就像是一种惯例,但从技术上讲,这些包都是绝对不相关的独立包。

完全由您决定如何在包中组织源代码。

答案 1 :(得分:1)

没有传统的方法来命名您的包或将您的类分组。但大多数时候,人们倾向于遵循标准的Java API,并采用了那些样式。 (仅举几例) 例如:utilcommonbasic

答案 2 :(得分:1)

您可以使用this,但最好的方法是查看您的规范并使其最具可读性和可扩展性。
我能给你的最好的建议是学习规则然后忘记制作你的规则

答案 3 :(得分:1)

可能没有确切的规则,但有一些指导原则。 Link to answer to another similar question由于此答案出现在SO上,因此仅粘贴链接。阅读鲍勃叔叔的文章可能会给你一些指示。

答案 4 :(得分:0)

Package允许将相关的类/包与适当的抽象组合在一起。 从技术上讲,在Java中,没有规则兄弟包应该允许彼此进行类访问。 从设计方法和良好实践的角度来看,建议以结构化和直观的方式对类/包进行分组。 例如,

   project.page
   project.page.login
   project.page.chrome
   project.page.account

这有助于应用程序的模块化单元测试。此外,正确的包层次结构有助于使用log4j等工具快速调试