Abstract Factory Example (2/3)
public abstract class GUIToolkit {
public static final int WINDOWS = 100;
public static final int MOTIF = 200;
static final GUIToolkit getFactory(int factory) {
case WINDOWS: return new WindowsGUIFactory();
case MOTIF: return new MotifGUIFactory();
default: throw new IllegalArgumentException("Invalid factory " + factory);
public abstract GUI createGUI();