代码之家  ›  专栏  ›  技术社区  ›  lapots

重用库类时的包命名

  •  1
  • lapots  · 技术社区  · 7 年前

    假设我正在使用一个库类,如 library-package.LibraryClass

    package library.package;
    class LibraryClass {}
    

    我研究了它的实现,出于我的应用程序目的,我想稍微修改一下这个类,然后使用。我的应用程序包 application-package .

    package application.package;
    class ApplicationClass {}
    

    我应该如何命名该类所在的包 LibraryClass 是否应存储?我应该在我的项目中重用吗 library-package application-package.library-package

    src\main\java\application\package
    src\main\java\library\package
    

    第二个

    package application.package.library.package;
    class LibraryClass {}
    
    3 回复  |  直到 7 年前
        1
  •  1
  •   GhostCat    7 年前

    我认为这可能归结为观点,但让我们提取手头的事实:

    • 在内部 那些库包)
    • 除此之外,

    application.package.library.package

        2
  •  1
  •   Tschallacka    7 年前

    这取决于你想用什么。

    tschallacka.magiccookies.util.math
    tschallacka.magiccookies.util.time
    tschallacka.magiccookies.graphics.model
    

    所以你有自己的“域名” tschallacka

    然后是您的项目名称。就我而言 magiccookies

    然后是它所属的组,这样你就可以很容易地找到相关的类。在这种情况下 util 对于我的实用程序类,以及 graphics 用于我的3d图形课程。

    math 对于数学相关课程, time 日期和时间, model 对于我的所有图形模型助手函数。

    基本上,这取决于您,以及您希望使用何种风格来组织代码。

    命名约定

    包名全部用小写字母书写,以避免与

    公司使用其反向互联网域名开始

    需要处理单个公司内发生的名称冲突 公司名称后的项目名称(例如,

    https://docs.oracle.com/javase/tutorial/java/package/namingpkgs.html

        3
  •  0
  •   Martin Spamer    6 年前

    如果你正在拍摄一些开源代码的“快照”以嵌入到你的项目中,那么一个常见的惯例是“按原样”使用它,使用类似于:

    package <lib-package>
    

    Junit用 hamcrest

    package my.tld.<lib-package>
    

    forking 在最初的项目中,我建议您使用相同的约定。

    但是,您应该考虑使用 Adapter Pattern