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

问题描述 投票:0回答:3

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

背景:我正在学习Java

致以最美好的祝愿,

帕特里克

java
3个回答
0
投票

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

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

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

A

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

存储库再次不明确。存储库是存储某些内容的位置。就源代码而言,这通常是版本控制的存储库,例如 git 存储库、mercurial 存储库或 svn 存储库。

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

总的来说,您会在很多地方找到存储库这个词。它是存放物品的地方的通用术语。例如,这可以是您自己的代码中的

UserRepository
。将
XXXRepository
作为类名并不罕见。

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


0
投票

虽然它们都保存/存储东西,但差异可以总结为:

  • 文件夹:将其视为计算机中的普通文件夹,您可以使用它们来组织您的东西
  • Library:例如,这就是您在 Java 中导入的内容,里面有很酷的函数可以使用,这样您就不必编写将日期从日语格式转换为欧洲格式的函数,因为其他人已经为您完成了该操作并创建了这样的图书馆
  • 存储库就像一个文件夹,但有一点不同,它用于分发和版本控制,就像使用 Git 时一样,它将保存有关已完成的提交、分支等的信息
  • 包只是使用包管理器自动安装库的简化方法

希望它有助于澄清! :)


-1
投票

通常所说的

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

import coolLibrary

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

A

repository
是存放代码和相关资源的地方。这可以位于您的本地文件系统或在线文件系统上。与文件夹的区别在于,存储库(其功能由
git
等工具提供)通常附带一些归档和版本控制工具。

A

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

© www.soinside.com 2019 - 2024. All rights reserved.