首页 > 解决方案 > 库、存储库、包和文件夹之间有什么区别?

问题描述

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

背景:我正在学习Java

最好的祝愿,

帕特里克

标签: java

解决方案


关于库、存储库、包和文件夹之间的区别:

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

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

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

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

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

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

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


推荐阅读