public abstract class Factory{
/**
抽象工厂方法
@param clz 产品对象类型
@return 具体的产品对象
*/
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.forName(coz.getName()).newInstance();
}catch(Exception e){
e.printStackTrace();
}
}
return (T)p;
}
//Client中的实现
public class Client {
Public static void main(String[] args){
Factory factory=new ConcreteFactory();
Product p=factory.createProduct(ConcreteProductB.class); //需要什么对象 传入什么类型即可
p.method();
}
}