import java.util.LinkedList; import java.util.List; import java.util.Iterator; public abstract class ModelObservable { private List observers=new LinkedList(); public void attach(ModelObserver o){ if (o == null) { throw new IllegalArgumentException("Parameter is null"); } observers.add(o); } public void detach( ModelObserver o){ if (o == null) { throw new IllegalArgumentException("Parameter is null"); } observers.remove(o); } public void notifyObservers(){ Iterator it = observers.iterator(); while(it.hasNext()) { ModelObserver x; x = (ModelObserver) it.next(); x.update(); } } public abstract void nextGeneration(); public abstract int[][] getPlayground(); public abstract void setLifeform( int coord, int coord2, int i); public abstract void setPlayground( int[][] pg); }