// ********** FactoryDemo.java ********** interface Product { public void operation(); } class ConcreteProduct1 implements Product { public void operation() {} } class ConcreteProduct2 implements Product { public void operation() {} } class Factory { public static Product createProduct(int code) { switch (code) { case 1: return new ConcreteProduct1(); case 2: return new ConcreteProduct2(); } return null; } } public class FactoryDemo { private static final int MAX = 1000; public static void main(String args[]) { long t1 = System.currentTimeMillis(); for (int i=0; i<10*MAX; i++) { Product product1 = Factory.createProduct(1); Product product2 = Factory.createProduct(2); for (int j=0; j