工厂模式有一个满足扩展方式的核心点是,利用反射把具体的产品封装起来,这样扩展的时候,不需要修改具体的工厂,只需要添加对应的产品类可以了。
工厂模式核心: 工厂模式满足开闭原则,实现动态扩展,而不用修改代码的实现方式是利用反射,把要创建的产品类作为参数传进去,然后进行生产。
public abstract class Factory{
public abstract <T extends Product> T createProduct(Class<T> c);
}
public ConcreteFactory extends Factory{
public <T extends Product> T createProduct(Class<T> c){
Product product=null;
try{
product=(Product) Class.forName(c.getName()).newInstance;
//product=(Product)c.newInstance();
}catch(Exception e){
}
}
}