工厂方法模式(Factory Method Pattern)又叫虚拟构造函数(Virtual Constructor)模式或多态性工厂(Polymorphic Factory)模式。工厂方法模式的用意是定义一个创建产品对象的工厂接口,将实际创建性工作推迟到子类中。 工厂模式又分为简单工厂、工厂方法和抽象工厂模式。
工厂方法模式,英文原话为:Define an interface for creating an object, but let subclasses decide which class to instantiate. Factory Method lets a class defer instantitation to subclasses.即:定义一个用于创建对象的接口,让子类决定实例化哪个类。工厂方法使一个类的实例化延迟到其子类。
工厂方法模式代码如下:
/**
* 抽象工厂
*
* @author LYYYL
*
*/
public interface Creator{
public <T extends Product> T factory(Class<T> c);
}
/**
* 抽象产品
* @author LYYYL
*
*/
public interface Product{
public void method1();
public void method2();
}
/**
* 具体工厂
* @author LYYYL
*
*/
public class ConcreteCreator implements Creator{
@Override
public <T extends Product> T factory(Class<T> c) {
// TODO Auto-generated method stub
return null;
}
}
/**
* 具体产品
* @author LYYYL
*
*/
public class ConcreteProduct implements Product{
@Override
public void method1() {
// TODO Auto-generated method stub
}
@Override
public void method2() {
// TODO Auto-generated method stub
}
}
public class FactoryMethodDemo{
public static void main(String[] args) {
Creator creator = new ConcreteCreator();
Product product = creator.factory(ConcreteProduct.class);
}
}
抽象工厂模式,英文原话为:Provide an interface for creating families of related or dependent objects without specifying theri concrete classes.即:为创建一组相关或相互依赖的对象提供一个接口,而且无需指定他们的具体类。
抽象工厂模式的使用场景:当一个对象族都有相同的约束时,可以使用抽象工厂模式。
相关博客连接: