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