只要您开始使用界面开始,并且所有库的客户端都知道该界面,您就可以了.只要您的库具有其客户端理解的接口并且它实现了接口,您的代码驻留在库中或库外的库中无关紧要.
这是一个古老的问题,15年前由COM(组件对象模型)解决了.保持你的界面与实现分开,你是金.
只要您开始使用界面开始,并且所有库的客户端都知道该界面,您就可以了.只要您的库具有其客户端理解的接口并且它实现了接口,您的代码驻留在库中或库外的库中无关紧要.
这是一个古老的问题,15年前由COM(组件对象模型)解决了.保持你的界面与实现分开,你是金.
我将回答Java版本.Java语言规范的这一部分详细描述了可以对应用程序进行的更改,同时保留了二进制兼容性.
根据我的理解,您的更改(尽管它们可能影响源的很大一部分)是简单的重构,它将一些实用程序类暴露给另一个模块,并重新引导旧类来调用这个新模块.这在包的演变部分中描述:
如果新类型不重用先前给予不相关类型的名称,则可以将新的顶级类或接口类型添加到包而不破坏与预先存在的二进制文件的兼容性.
因此,这不会破坏与使用您的库的现有类的二进制兼容性.CBORClient
过去调用的任何现有类CBORUtil.doArithmetic()
都将继续工作,而无需重新编译它,因为该方法仍然存在,只有它的主体已更改为调用另一个模块来进行计算.