这是老生常谈。但有时候你在争论时有可能一时间举不出任何例子,所以这里就写一个例子来阐述这个简单的道理。
比如说,网页上某表单的输入校验中引用了Session中的对象,在Servlet环境中这没问题;但有一天,客户要求提供一个Web Service,实现这个表单相同的功能,那就没办法重用这段校验代码,因为Web Service里找不到也不需要这个Session对象。
深入一点,可以说:
每个API都有个核心逻辑,这个逻辑的性质决定了它应处的层次;如果这个API引用该层次的上一层(比如Service引用了Session),那这个API就没办法重用;但如果它引用的是下一层(比如Service引用了DAO),那它的重用性就不受影响。