共享界面

tun*_*ing 2 java jar interface driver

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

目的是将"驱动程序"包含在jar文件中.然后第三方"驱动程序"开发人员将被要求实现该接口.

当我试图解决这个问题时,我将"驱动程序"代码移动到jar中,发现我遇到了麻烦,因为我在主应用程序和jar文件中都定义了接口.

是否有推荐的方法来实施这种方法,还是我走错了方向?

Ĵ

Tho*_*mas 6

您基本上定义了一次接口,例如在API jar中.然后主应用程序和驱动程序使用此jar.

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

就Maven而言,依赖性将具有范围providedcompile库.

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

  • +1这是正确的答案.这个设计的一个很好的和众所周知的例子是`servlet-api.jar`,它随Tomcat的每个副本一起提供. (3认同)