如何重构以下代码:
class ModifyTree{
public void doActionsOnTree(Tree tree) {
rAction1(tree.getRoot());
rAction2(tree.getRoot());
}
private void action1(Node node) {
// do something with node;
}
private void action2 (Node node) {
// do something with node
}
private void rAction1(Node node) {
action1(node);
for(Node nodeIterator : node.getChildren())
rAction1(nodeIterator);
}
private void rAction2(Node node) {
action2(node);
for(Node nodeIterator : node.getChildren())
rAction2(nodeIterator);
}
}
方法rAction1()
和rAction2()
看起来非常相似。在这种情况下,有没有不重复代码的方法?