[英]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.