package pattern; public class FigureEventMulticaster implements FigureEventListener { FigureEventListener a, b; protected FigureEventMulticaster(FigureEventListener a, FigureEventListener b) { this.a = a; this.b = b; } public void update(FigureEvent e) { System.out.println("multicast: " + a + ", " + b); a.update(e); b.update(e); } public static FigureEventListener add(FigureEventListener a, FigureEventListener b) { if (a == null) return b; if (b == null) return a; //CompositeFigure.foo(); return new FigureEventMulticaster(a, b); } }