【问题标题】:Java: Conventions for using packages?Java:使用包的约定?
【发布时间】:2010-12-30 19:27:34
【问题描述】:

我来自 PHP 背景,由于过去缺乏命名空间,我使用过 Zend Framework 风格的“包”。例如,如果我有一个抽象类 Player 和子类 Player_Human、Player_DumbComputer、Player_Minimax 等。我会将 Player 放在主目录中,并将其子类放在 /Player/ 目录中。它试图在 Java 中做类似的事情,但我遇到了名字冲突——我有一个包 blah.Player 和一个类 blah.Player。我该如何避免这种情况?这方面的常见做法是什么?

【问题讨论】:

标签: java package


【解决方案1】:

来自Code Conventions for the JavaTM Programming Language

包命名约定:

唯一包名的前缀总是用全小写的ASCII字母写的,应该是顶级域名之一,目前是com、edu、gov、mil、net、org,或者是英文两个之一-字母代码标识 ISO 标准 3166, 1981 中指定的国家/地区。

软件包名称的后续组成部分根据组织自己的内部命名约定而有所不同。此类约定可能会指定某些目录名称组件是部门、部门、项目、机器或登录名。

类命名约定:

类名应该是名词,大小写混合,每个内部单词的首字母大写。尽量保持你的类名简单和描述性。使用完整的单词,避免使用首字母缩写词和缩写词(除非缩写词比长格式更广泛地使用,例如 URL 或 HTML)。

【讨论】:

    【解决方案2】:

    Java 包名总是小写,而类名总是以大写字母开头并且是驼峰式命名(没有下划线)。所以你的结构应该是:

    - blah
    |- Player.java
    |- player
      |- HumanPlayer.java
      |- DumbComputerPlayer.java
      |- MinimaxPlayer.java
    

    【讨论】:

    • 是的,在这个例子中,HumanPlayer 将被称为 blah.player.HumanPlayer
    • 这些 are always 最好是 should always be,因为这种大小写约定实际上只是一种约定(不过,这是一个有用的约定)。
    【解决方案3】:

    Java 已广泛使用conventions for package names

    【讨论】:

      猜你喜欢
      • 2011-04-16
      • 1970-01-01
      • 2013-05-06
      • 2016-02-02
      • 2012-01-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-12
      相关资源
      最近更新 更多