上来聊几句,也不是不得了,就是有点郁闷,有兴趣的职友请帮我理理头绪。
要给公司现有系统做一个improvement,大概是这样的,假如一个树结构,每个结点有个checkbox,有的checked,有的unchecked,如果对树的某个结点做一个操作,那么这个结点的下层children中如果这个checkbox是checked,那么也要实施这个操作,如此类推到最下层。这个问题不难,我写个递归程序就解决了,问题是负责这块的一个老头同事不同意用递归,说将来不好维护,我就换了个方式,写了个最 短小的method,用C#的yield return把需要进行操作的所有checked结点先找出来,然后再做这个操作,但测试时发现不行,因为这个操作有赖于上一层的结果,必须先做父结点,取得一个ID,然后才能做下一层结点,而yield return的结果是个没有顺序的集合,不能保证先做哪个后做哪个。我跟老头谈了这个问题,,希望能回到递归上来,但老头很固执,坚持不用递归,说总可以找到别的办法,真是头大。这个树结构是没有规定深度的,不用递归就得按最大深度的可能性就是每个结点只有一个CHILD这样的深度来循环检查,几十行的程序变成了几百行,还不知道能不能做出来。
我现在应该怎么办呢?老头好象很难说服,坚持用递归怕得罪了他,而这样下去,以后是不是都得按他的意思来?