次のコードをリファクタリングするにはどうすればよいですか。
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()
見た目は非常に似ています。この場合、コードを繰り返さない方法はありますか?