在不同类中的递归方法中隐藏状态参数

时间:2014-10-24 18:19:19

标签: java oop design-patterns recursion

我在A类中有一个方法“doA”,它在类B中调用方法“doB”,再次调用“doA”。地图在每次调用中作为参数传递,在“doB”中更改。 通过所有递归调用都需要该映射,但这是特定实现状态的一部分,尽管我实际上希望A类与该状态无关,因为其他实现不需要它,当然我也不需要我想在其他地方移动完全相同的问题。

class A {
    public void doA(Map state)  {
      b.doB(state)
    }
}

class B {
    public void doB(Map state) {
      if (someCondition) {
         a.doA(processState(state))
      }
    }

}

1 个答案:

答案 0 :(得分:0)

我能想到的唯一方法是创建一个临时地图,并在满足条件时复制所有元素,并在使用后取消引用临时地图,以便垃圾收集器处理它。