你依赖了它,可能也就依赖了它的邻居
如果你的应用App依赖了远程接口API_Real,那API_Real所处的系统里的其他接口如API_Neighbor其实也和你的应用产生了间接耦合:发布时的依赖。
比如说,API_Neighbor重新发布时,它所处的整个系统都要重新发布,也就是说API_Real在发布期间可能暂时无法服务,这就会影响你的App的运行。
一个影响更严重的例子是: 你更新了API_Real,别人更新了API_Neighbor,大家说好一起发布。结果发布时API_Neighbor出了问题,要紧急查错和修改,这个过程可能会持续一两天。那对API_Real来说,要么等着API_Neighbor修好一起上;要么在构建库里把API_Neighbor去掉,重新打包,只发布API_Real(这一般比较麻烦,而且会有点风险)
另一种对邻居的依赖是在二进制依赖时发生的。虽然你宣称只依赖了Jar包里的XXXService, 但你的同事可能会直接去调这个Jar包里的XXXDAO,以后XXXDAO的改动都可能影响到你的应用。