I have a class that needs to reset its internal iterator on a list whenever a new list is set:
public class ListElementReceiver implements ElementReceiver {
private List<Element> elements;
private Iterator<Element> elementIter;
public void reset() {
elementIter = elements.iterator();
}
public void setElements(List<Element> elements) {
this.elements = elements;
reset();
}
}
It's basically just a wrapper around a list and its iterator so i can use it with my given Interface ElementReceiver
. The problem i have is building the constructors for this class. Which of the two approaches is preferable?
// Approach 1: Duplicate logic, independant of Setter
public ListElementReceiver() {
elements = new List<Element>();
reset();
}
public ListElementReceiver(List<Element> elements) {
this.elements = elements;
reset();
}
//Approach 2: Make dependant on Setter
public ListElementReceiver() {
setElements(new List<Element>());
}
public ListElementReceiver(List<Element> elements) {
setElements(elements);
}