package pattern; import java.util.Vector; public class CompositeFigure extends AbstractFigure implements FigureEventListener { protected Vector _components; public CompositeFigure() { _components = new Vector(); } public void add(Figure f) { f.addListener(this); _components.add(f); } public void op() { // do something for ( int i=0; i<_components.size(); i++){ Figure a = (Figure)_components.get(i); a.op(); } } public void update(FigureEvent f) { System.out.println("update: " + this); //update1(f); if ( listener() != null ) listener().update(f); } }