创建型模式之工厂方法

来源:互联网 发布:人性实验室 网络暴力 编辑:程序博客网 时间:2024/06/01 08:07

      工厂方法模式(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{@Overridepublic <T extends Product> T factory(Class<T> c) {// TODO Auto-generated method stubreturn null;}}/** * 具体产品 * @author LYYYL * */public class ConcreteProduct implements Product{@Overridepublic void method1() {// TODO Auto-generated method stub}@Overridepublic 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);}}


      工厂方法模式的优点:1、良好的封装性,代码结构清晰;2、优秀的可扩展性;3、屏蔽产品类;4、工厂方法模式是典型的解耦框架;


      抽象工厂模式,英文原话为:Provide an interface for creating families of related or dependent objects without specifying theri concrete classes.即:为创建一组相关或相互依赖的对象提供一个接口,而且无需指定他们的具体类。


      抽象工厂模式的使用场景:当一个对象族都有相同的约束时,可以使用抽象工厂模式。


相关博客连接:

          

          设计模式第一课

          设计模式之设计原则学习

          设计模式之单例模式

1 0
原创粉丝点击