How to correctly refactor this?
Posted
by kane77
on Stack Overflow
See other posts from Stack Overflow
or by kane77
Published on 2010-03-07T20:40:18Z
Indexed on
2010/03/08
0:12 UTC
Read the original article
Hit count: 697
I have trouble finding way to correctly refactor this code so that there would be as little duplicate code as possible, I have a couple of methods like this (pseudocode):
public List<Something> parseSomething(Node n){
List<Something> somethings = new ArrayList<Something>();
initialize();
sameCodeInBothClasses();
List<Node> nodes = getChildrenByName(n, "somename");
for(Node n:nodes){
method();
actionA();
somethings.add(new Something(actionB());
}
return somethings;
}
methods sameCodeInBothClasses()
are same in all classes but where it differs is what hapens in for loop actionA()
and it also adds an element to the List of different type.
Should I use Strategy pattern for the different parts inside loop?
What about the return value (The type of list differs), should the method return just List<Object>
that I would then cast to appropriate type? Should I pass the class I want to return as parameter?
© Stack Overflow or respective owner