如果我有一个依赖于抽象(接口)但不包含该接口的任何实现的项目,该怎么办?因此,我想将该界面提供给可以实现它的人,这样我(或将要使用我的软件的其他人)将能够使用他们的界面实现。
因此,我有以下问题。我可以说,如何共享该界面?
我想到的想法是制作包含界面的JAR,并将其提供给将要在JAR中实现该界面的人。在它之后,实现界面的人创建了他的JAR并将其交给我。所以我可以使用他的JAR来实现我的界面。这是一种正确的方法吗?
它的目的是制作模块化架构,这样如果我需要一个新游戏(根据上面的例子),我将使用已实现的接口的JAR,并将其插入我的项目中。
是。
您应该拥有一个只包含接口的共享构建工件(JAR文件),您的项目和实现项目都可以依赖这些接口。
您可能希望查看Maven或Gradle等工具,以帮助编排具有此类依赖关系的构建过程。例如,您可能希望将API JAR发布到开发人员可以使用的共享包存储库。
您可能还需要查看java.util.ServiceLoader
和Service Locator模式,以发现您可以使用的具体实现。