Java 把一个项目分成两个独立的项目有什么意义?
很多时候,我看到人们将一个项目分成两个独立的项目,如下图所示:Java 把一个项目分成两个独立的项目有什么意义?,java,Java,很多时候,我看到人们将一个项目分成两个独立的项目,如下图所示: 将Dembol和IngotAPI分开,而不是将它们放在同一个项目中,因为它们是一起编译的,这有什么意义呢?首先是为了使代码更加可重用。通过将不同的功能打包到不同的项目中,您可以更容易地找到要传递到另一个项目的功能(在这种情况下,您可以将整个IngotAPI导出到一个新项目)。 第二个是测试。当每个项目都有单独的单元测试时,控制测试结果要比检查两个项目之间集成的测试容易得多 例如,如果IngotAPI开发得很好,它就不应该对Ingo
将Dembol和IngotAPI分开,而不是将它们放在同一个项目中,因为它们是一起编译的,这有什么意义呢?首先是为了使代码更加可重用。通过将不同的功能打包到不同的项目中,您可以更容易地找到要传递到另一个项目的功能(在这种情况下,您可以将整个IngotAPI导出到一个新项目)。 第二个是测试。当每个项目都有单独的单元测试时,控制测试结果要比检查两个项目之间集成的测试容易得多
例如,如果IngotAPI开发得很好,它就不应该对IngotAPI项目有任何依赖关系。这意味着,如果您对IngotAPI项目进行任何更改,您不需要单独测试IngotAPI,因为它不会受到影响(高内聚性),您只需要测试Ingot,以及Ingot在何处使用IngotAPI。IngotAPI似乎是其他项目中易于参考的内容。 也许它将来会在其他地方使用
最后,这并不重要,因为您也可以将其他项目中的类复制到最近的项目中 主要原因是,当您实现API时,您希望将其分发给潜在的客户端。通过划分为两个(或多个)项目,您可以只分发接口和业务对象,并为自己保留实现
这样,您就不必重新发布任何实现更改。这样做的一个原因是实现可以互换 假设有两个客户机使用您的应用程序。它们对如何做一件事都有不同的要求(例如算法不同),但结果的类型是相同的。在这种情况下,客户端代码应该只直接与API一起工作,而不依赖于任何实现。在构建过程中,您可以指定应该使用哪个实现 使用此解决方案:
- 如果有任何新客户机到来,您将很容易地为新需求创建一个实现,而无需更改API或客户机代码。它使您的旧代码更加可重用
- 如果只在实现中进行了更改,则不必重建API或客户端。它在工作中节省了开发人员的时间
- 在测试期间,您可以为业务逻辑的某些部分提供带有实体模型的实现
一般来说,有几个项目允许考虑每个项目“强>模块< /强>,一个单元,它导入指定的其他模块列表,并形成一个分层的层次结构。这可以给软件系统提供更高的质量,无需来回导入。下一代java将获得模块。
如果其他项目只需要其中一个模块,也许您可以单独分发它们。在不了解这个特定项目的情况下,核心模块和API模块通常具有不同的功能。也许这个问题更适合你?这不是一个基于观点的问题。