对需求的理解深度影响你的设计水平:
如果想让你开发一个支持二级权重的子召回,而你真的做了一个子召回,它仅仅支持二级权重的子召回,
后面如果让你开发一个三级权重的子召回,你还得大动干戈改动代码吗?
我们可以对这个需求进行分解,分析,二级权重的子召回,那么就分解为二级和权重两个部分,而权重的召回属于一个新的召回(属于一个维度),而二级这个值是可变化的(这个权重维度有很多值,这个权重应该设置为一个变量),因此
这里要把权重的召回做成一个通用的功能模块,当需要三级,四级的时候也是可以支持的;只需要传入不同的控制参数(比如权重值);