|
Consider these classes:
(This code has been greatly simplified; the queue wasn't originally storing strings.)
Queue.java
import java.util.ArrayList;
public class Queue {
ArrayList delegate = new ArrayList();
public Queue() {}
public void addRear(String s) {delegate.add(s);}
public int getSize() {return delegate.size();}
public String removeFront() {
String result = delegate.get(0).toString();
delegate.remove(0);
return result;
}
}
QueueTest.java (selection)
public void testQ() {
Queue q = new Queue();
q.addRear("E1");
q.addRear("E2");
assertEquals("E1", q.removeFront());
assertEquals("E2", q.removeFront());
assertEquals(0, q.getSize());
}
Remove Middle Man so that the queue is no longer a middle man for the ArrayList. Is this an improvement? Put the Middle Man back in via Hide Delegate.
See Appendix A for solutions.
|