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 时。
推荐阅读
- python - 动画期间图像未在 python 图中更新
- google-apps-script - Google Script - 不属于我的日历活动
- sql-server - SSIS 脚本组件 - 遍历具有 NULL 值的列
- c# - ValidateModel 不起作用 asp.net core 3.0
- border - Google Docs API 中的表格边框
- c# - .NET Core 2.2 UserManager.CreateAsync 不允许重复的用户名
- java - 如何在 TestNG 报告中显示消息(对于通过的测试用例)
- excel - Excel 格式,从时间格式中删除日期
- generics - 如何在不使用任何框架(如 PRISM 或任何导航服务)的情况下按照 Xamarin.Forms 中的 MVVM 架构进行导航?
- python-3.x - 当 ForeignKey 设置为“self”时,如何避免“此字段是必需的”?