public abstract class Factory {
public abstract <T extends Product> T createProduct(Class<T> clz);
}
public class ConcreteFactory extends Factory {
@Override
public <T extends Product> T createProduct(Class<T> clz) {
Product p = null;
try {
p = (Product) Class.from(clz.getName()).newInstance();
} catch(Exception e) {
}
return (T) p;
}
}
複製代碼