共享界面的正确方法是什么?
What's the proper way to share the interface?
如果我有一个依赖于抽象(接口)但不包含此接口的任何实现的项目怎么办。因此,我想将该接口提供给可以实现它的人,这样我 (或将要使用我的软件的其他人) 将能够使用他们对我的接口的实现。
因此,我有以下疑问。比方说,我如何共享 界面 ?
我的想法是制作包含接口的 JAR,并将其提供给将要在 JAR 中实现该接口的人。之后,实现接口的人创建了他的 JAR 并将其提供给我。所以我可以使用他的 JAR 来实现我的接口。这是正确的做法吗?
它的目的是制作模块化架构,这样如果我需要一个新游戏(根据上面的例子),我会拿一个带有实现接口的 JAR 并将它插入我的项目中。
是的。
您应该有一个 共享 构建工件(JAR 文件),它只包含您的项目和实施项目都可以依赖的接口。
您可能需要研究像 Maven 或 Gradle 这样的工具,以帮助编排具有此类依赖项的构建过程。例如,您可能希望将 API JAR 发布到两个开发人员都可以使用的共享包存储库。
您可能还想查看 java.util.ServiceLoader
和服务定位器模式,以发现您可以使用哪些具体实现。
如果我有一个依赖于抽象(接口)但不包含此接口的任何实现的项目怎么办。因此,我想将该接口提供给可以实现它的人,这样我 (或将要使用我的软件的其他人) 将能够使用他们对我的接口的实现。
因此,我有以下疑问。比方说,我如何共享 界面 ?
我的想法是制作包含接口的 JAR,并将其提供给将要在 JAR 中实现该接口的人。之后,实现接口的人创建了他的 JAR 并将其提供给我。所以我可以使用他的 JAR 来实现我的接口。这是正确的做法吗?
它的目的是制作模块化架构,这样如果我需要一个新游戏(根据上面的例子),我会拿一个带有实现接口的 JAR 并将它插入我的项目中。
是的。
您应该有一个 共享 构建工件(JAR 文件),它只包含您的项目和实施项目都可以依赖的接口。
您可能需要研究像 Maven 或 Gradle 这样的工具,以帮助编排具有此类依赖项的构建过程。例如,您可能希望将 API JAR 发布到两个开发人员都可以使用的共享包存储库。
您可能还想查看 java.util.ServiceLoader
和服务定位器模式,以发现您可以使用哪些具体实现。