1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
| public interface PopListener // seules les méthodes des interfaces sont public par défaut
{
void popPerformed(PopEvent evt);
}
public class PopEvent
{
PopEvent(EStack, Object) { ... }
}
public class EStack<E> extends Stack<E>
{
List<PopListener> poplisteners;
EStack()
{
super(); //appelé par défaut
poplisteners = new ArrayList<PopListener>();
}
void addPopListener(PopListener p){ ... } // à ajouter à une ArrayList sous sa forme générique
void removePopListener(PopListerner p){ ... } // on en retire un
E pop
{
E e = super.pop();
Iterator<PopListener> it = poplisteners.iterator();
PopEvent pe = new PopEvent(this,e);
while(it.hasNext())
{
it.next().popPerformed(pe);
}
return e;
}
} |
Partager