我不知道如何问这个问题,所以我先解释一下问题:
我正在为另一个软件开发一个插件,它依赖于一个不由我管理的API。
当该 API 的代码发生更改时,我需要更新我的插件以使其再次兼容(例如,由于已弃用的代码、已删除的类等)。
问题是,如果我更改插件以使其与新软件版本兼容,它就不再与该软件的先前版本兼容。
是否可以只有一个插件与两个版本的软件兼容(假设 API 中的一个类更改了名称或被删除)?或者唯一的解决方案是维护两个版本?
最佳答案
在某些情况下,您将需要有两个版本的代码。
但是您可以通过使用类似适配器的设计模式来缓解这个问题。
通过这种方式,您可以创建两个版本响应的通用接口(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/