public abstract void prepare(); public abstract void bake(); public abstract void cut(); public abstract void box();
}
public class NYPizzaStore extends PizzaStore {
@Override public Pizza createPizza(String type) { if ("cheese".equals(type)) { return new NYStyleCheesePizza(); } else if ("veggie".equals(type)) { return new NYStyleVeggiePizza(); } return null; }
}
public class ChicagoPizzaStore extends PizzaStore {
@Override public Pizza createPizza(String type) { // TODO Auto-generated method stub return null; }
}
public class NYStyleCheesePizza extends Pizza {
@Override public void prepare() { // TODO Auto-generated method stub
}
@Override public void bake() { // TODO Auto-generated method stub
}
@Override public void cut() { // TODO Auto-generated method stub
}
@Override public void box() { // TODO Auto-generated method stub
}
}
public class NYStyleVeggiePizza extends Pizza {
@Override public void prepare() { // TODO Auto-generated method stub
}
@Override public void bake() { // TODO Auto-generated method stub
}
@Override public void cut() { // TODO Auto-generated method stub
}
@Override public void box() { // TODO Auto-generated method stub
}
}
public class BaseGenerator<T> implements Generator<T> {
private Class<T> type;
public BaseGenerator(Class<T> type) { this.type = type; }
@Override public T next() { try { return type.newInstance(); } catch (Exception e) { throw new RuntimeException(e); } } // 泛型类型对静态函数不管用,在此还需要为该函数声明类型 public static <T> Generator<T> create(Class<T> type) { return new BaseGenerator<T>(type); } // 对非静态的可直接使用 public Generator<T> create1(Class<T> type) { return new BaseGenerator<T>(type); }