首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >共享接口

共享接口
EN

Stack Overflow用户
提问于 2011-12-01 23:16:00
回答 3查看 994关注 0票数 2

我正在编写一个Java应用程序,将加载第三方“驱动程序”。我打算开发一个接口,它将定义“驱动程序”必须实现的必要方法,以便在应用程序中工作。

其意图是将“驱动程序”包含在jar文件中。然后,第三方“驱动”开发人员将被要求实现该接口。

当我试图弄清楚这一点时,我将“驱动程序”代码移动到一个jar中,并发现我遇到了问题,因为我在主应用程序和jar文件中都定义了接口。

有没有推荐的方法来实现这种方法,或者我走错了方向?

J

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-12-01 23:18:16

您基本上只需定义一次接口,例如在API jar中。然后,主应用程序和驱动程序都会使用这个jar。

然后,驱动程序库将此API jar作为主应用程序提供的依赖项。

在Maven中,对于库,依赖项的作用域是providedcompile

请注意,您应该避免同一类在不同的库中出现两次,因为这很可能会导致类加载问题、类类型转换异常等(除非像大多数应用程序服务器那样,存在隔离应用程序的类加载器作用域)。

票数 6
EN

Stack Overflow用户

发布于 2011-12-01 23:19:43

由于接口是您提供的API /库的一部分,因此您应该在那里拥有接口,并且第三方应该导入您的API (从您的jar)并实现适当的接口,就像Java API提供SQL接口而不是实际实现一样,而MySQL实现Java API接口。如果您的驱动程序接口在应用程序外部使用,则可以将其打包为单独的jar,但如果它实际上仅用于与库的交互,则应该将其与库的其余部分打包在一起。

票数 1
EN

Stack Overflow用户

发布于 2011-12-01 23:19:36

如果您实际移动了接口,则需要重新构建这两个jars。如果你已经复制了它,那么你需要给它一个不同的包名

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8343648

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档