工厂方法模式(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.即:为创建一组相关或相互依赖的对象提供一个接口,而且无需指定他们的具体类。
抽象工厂模式的使用场景:当一个对象族都有相同的约束时,可以使用抽象工厂模式。
相关博客连接:
版权声明:本文为博主原创文章,未经博主允许不得转载。
原文地址:http://blog.csdn.net/yanglun1/article/details/47619089