共享界面的正确方法是什么?

时间:2019-04-05 09:48:24

标签: java modularity interface-implementation

如果我有一个项目依赖于抽象(接口)但不包含此接口的任何实现,该怎么办。因此,我想将该接口提供给可以实现它的人,以便我(或打算使用我的软件的其他人)可以使用他们对我的接口的实现。

因此,我有以下问题。假设我如何共享该界面

我想到的是制作包含接口的JAR,并将其提供给打算在JAR中实现该接口的人。之后,实现该接口的人创建其JAR并将其提供给我。因此,我可以将其JAR与我的界面一起使用。是这样做的正确方法吗?

enter image description here

它的目的是制作模块化体系结构,以便如果我需要一个新游戏(根据上面的示例),我将使用具有已实现接口的JAR并将其插入我的项目中。

1 个答案:

答案 0 :(得分:2)

是的

您应该有一个 shared 构建构件(JAR文件),该构件仅包含您的项目和实施项目都可以依赖的接口。

您可能希望研究Maven或Gradle之类的工具,以帮助通过此类依赖项来协调构建过程。例如,您可能想将API JAR发布到两个开发人员都可以使用的共享软件包存储库。

您可能还想研究java.util.ServiceLoader和服务定位器模式,以发现可用的特定实现。