繁体   English   中英

库、存储库、包和文件夹之间有什么区别?

[英]What is the difference between a library, respository, package and folder?

我想知道这些东西之间是否存在真正的技术差异,或者差异是否只是语义? 在我看来,它们都只是存储其他文件的地方。

背景:我正在学习Java

最好的祝愿,

帕特里克

关于库、存储库、包和文件夹之间的差异:

库是一组打包在一起以便于使用的功能。 库和框架或引擎之间没有太大区别,它们都实现了相似的功能,区别在于细微的语义。

库通常被打包——作为 JAR 或作为 Maven 工件,以便其他最终用户可以轻松使用它们。

package在Java中的另一个名字namespace 包起到了消除类歧义和组织它们的作用。 是的,当您在 IDE 中编程时,它们会 1:1 映射到文件系统中的文件夹 - 但这只是一个实现细节。 例如,在 C# 中,命名空间不会 1:1 映射到文件夹。

存储库再次模棱两可。 存储库是存储某些内容的位置。 就源代码而言,这通常是一个版本控制的存储库,如 git repo、mercurial repo 或 svn repo。

但是存在其他类型的存储库。 例如,Maven 存储库托管 machen 工件 - 它可以用作 POM 中的依赖项。

总的来说,您会在很多地方找到词库。 它是存放东西的地方的通用术语。 例如,这可以是您自己代码中的UserRepository XXXRepository视为类名的情况并不少见。

文件系统上的文件夹只是达到目的的一种手段,就像键值存储和 SQL 数据库一样。 它们不是 Java 开发人员通常关心的组织单位,除非在实际进行文件 I/O 时。

通常所说的library通常是一组功能,您可以使用导入语句将其导入到您的软件中,如下所示:

import coolLibrary

您这样做是为了不必自己实现该功能。 顺便说一下,在不同的上下文/编程语言中使用不同的术语。

repository是存储代码和相关资源的地方。 这可以在您的本地文件系统上或在线。 将它与文件夹分开的是存储库,其功能由git工具提供,通常带有一些存档和版本控制工具。

package只是 Java 中一组相关的类。 它们用于组织项目。 您选择的 IDE 将允许您使用它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM