定义:工厂模式要求定义一个用于创建对象的接口,让子类决定实例化哪个类,是一个类的实例化延迟到其子类。
public abstact class Product{
public void method1(){……}
public abstract void method2();
}
public class ConcreteProduct1 extents Product{
public void method2(){……}
}
public class ConcreteProduct2 extents Product{
public void method2(){……}
}
public abstact class AbstractFactory{
public abstract <T extents Product> T createProduct(Class<T> c);
}
public abstact class ConcreteFactory extents AbstractFactory{
public <T extents Product> T createProduct(Class<T> c){
Product product=null;
Try{
Product=(Product)Class.forName(c.getName()).newInstance();
}catch(Exceptione){
……
}
Return (T)product;
}
}
优点:良好的封装性,代码结构清晰,降低模块间的耦合;扩展性好;屏蔽产品类。