错综复杂的依赖关系

传说中的“六度分隔理论”说最多只要通过六个不同的朋友,就可以联系到世界上所有其他不同的人。即任何人只要通过六个不同的其他人就可以跟任何其他人建立联系。这个所谓的六度理论如果应用到jar包依赖上,却是一个非常恐怖的事情。试想如果你依赖了六个不同的jar包,而通过这些jar你依赖到全世界所有其他的jar包去了,那就真的挂了。
当然上面只是一个玩笑,但是现实情况我们的jar依赖也很复杂,有时候就因为一点点功能,我就要依赖一大堆其他“毫不相干”的东西。而且依赖关系还很难理清。这种问题说明:
1.我们的包设计不够好,不够内聚。
2.复用不是拿来就用,而是合理的使用已有资源;如果在一个很庞大的jar包里你只用了一个简单的a方法,但是在初始化时往往把jar包N个跟你不相干的Service初始化,真的是很郁闷的事情,还不如自己重新实现一个a方法。
3.依赖即风险, 依赖即故障~!依赖关系一旦复杂,管理不可控,很容易出现类似DLL HELL这样的问题。

    推荐阅读