【发布时间】:2012-10-22 23:44:40
【问题描述】:
我正在创建一个公开 API 供开发人员使用的框架:
public interface MyAPI {
public void doSomeStuff();
public int getWidgets(boolean hasRun);
}
所有开发人员所要做的就是根据这些 API 方法对他们的项目进行编码。我还希望他们能够在运行时类路径上放置不同的“驱动程序”/“API 绑定”(与 JDBC 或 SLF4J 的工作方式相同)并让 API 方法调用(doSomeStuff() 等)在不同的第 3 方上运行资源(文件、服务器等)。因此,相同的代码和 API 调用将映射到不同资源上的操作,具体取决于运行时类路径看到的驱动程序/绑定(即myapi-ftp、myapi-ssh、myapi-teleportation)。
我如何编写(和打包)允许此类运行时绑定的 SPI,和然后将 MyAPI 调用映射到正确的(具体)实现?换句话说,如果myapi-ftp 允许您从 FTP 服务器访问getWidgets(boolean),我将如何实现(同时使用 API 和 SPI)?
具体、有效的 Java 代码示例加分!提前致谢!
【问题讨论】:
标签: java api design-patterns slf4j