java - 与 Java 中 @deprecated 代码的条件兼容性

标签 java

我不知道如何问这个问题,所以我先解释一下问题:

我正在为另一个软件开发一个插件,它依赖于一个不由我管理的API。

当该 API 的代码发生更改时,我需要更新我的插件以使其再次兼容(例如,由于已弃用的代码、已删除的类等)。

问题是,如果我更改插件以使其与新软件版本兼容,它就不再与该软件的先前版本兼容。

是否可以只有一个插件与两个版本的软件兼容(假设 API 中的一个类更改了名称或被删除)?或者唯一的解决方案是维护两个版本?

最佳答案

在某些情况下,您将需要有两个版本的代码。
但是您可以通过使用类似适配器的设计模式来缓解这个问题。

enter image description here

通过这种方式,您可以创建两个版本响应的通用接口(interface),并仅实现版本变体(适应类删除等)。

您可以在本书中搜索更多信息:https://iansommerville.com/software-engineering-book/

通过这种方法,您可以更新插件并在运行时加载代码。 这个答案展示了如何做到这一点:How should I load Jars dynamically at runtime?

关于java - 与 Java 中 @deprecated 代码的条件兼容性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59098831/

相关文章:

java - 具有非标准命名源集的 Gradle - 如何使它们可供测试类使用?

java - 在 Java 中解压 jar 的最简单方法

java - 在 Tomcat 8 上部署

java - 检索与字符串同名的变量

java - 我们如何从Java中的不同区域访问变量

java - 通过带有 excel 文件的 java 应用程序发送电子邮件 - 无法正常工作

java - Handler.handleMessage 在测试中没有被调用,但是在应用中被调用

java - 如何使用 putty 或 WinSCP 在服务器上手动关闭端口?

java - 如何在 OSX 10.8 中设置终端路径

java - 显示从 json 响应中检索到的所有内容