在有严格接口格式声明的情况下.
A 方法调用 B 方法,A 有责任对调用 B 时的传参和相应的异常做处理么? 还是说都应该有 B 负责. 这样更内聚,对 A 来说也符合最少知识原则.
有什么说法、理论论述么? 或者实践经验.
|  |      1zhiguang      2019-11-25 17:57:52 +08:00  1 理论上讲应该是 B 负责,实际上从头到尾就你一个人写,写哪都行 | 
|  |      2passerbytiny      2019-11-25 18:16:48 +08:00  1 永远是被调用端。 但是。 在你的例子中,是 外部 调用 A,A 调用 B,此时对于外部来说,A 和 B 合成一体作为被调用方,A 和 B 至少要有一个做校验。至于是 A 做还是 B 做还是两个都做,取决于开发规范。 如果不好理解的话,你这样看:假如 A 是最初的调用方,那么 A 就没有参数,压根没法做参数校验。 | 
|  |      3eason1874      2019-11-25 18:28:38 +08:00  1 要看是内部还是外部吧,AB 都是自己组那就 A 负责,A 是别组 B 是自己那就 B 负责。 | 
|  |      4zjp      2019-11-25 18:31:52 +08:00 via Android  1 | 
|      5dioxide OP 有这么个事实可以确定: 若每个 B 的调用者,都预先做参数校验,那代码中无疑会存在冗余(违反 DRY 原则). | 
|      6GM      2019-11-25 18:47:11 +08:00  1 一般来说是函数本身负责。 特殊情况是,该函数调用频率非常频繁,对性能要求非常高,这时候可以把职责外推给调用者(文档里写清楚)。 |