美文网首页
设计模式之 --- 工厂方法模式(Factory Method)

设计模式之 --- 工厂方法模式(Factory Method)

作者: _micang | 来源:发表于2020-07-14 18:21 被阅读0次

    1. 定义: 定义一个用于创建对象的接口,让子类决定实例化哪一个类。Factory Method 使一个类的实例化延迟到其子类。

    产品: 

    接口:public interface Product {

            void show ();

    }

    产品1: class Product1 implements Product {

            public void show() {

                    System.out.println("this is the product 1");

            }

    }

    产品2: class Product1 implements Product {

            public void show() {

                    System.out.println("this is the product 2");

            }

    }

    产品工厂:

    接口: public interface CreateFactory {

            Product create();

    }

    产品1工厂:class Product1Factory implements CreateFactory{

            @Override

            public Product create() {

                    return new Product1();

            }

    }

    产品2工厂:class Product2Factory implements CreateFactory {

            @Override

            public Product create() {

                    return new Product2();

            }

    }

    使用:

    public class Test {

            public static void main(String[] args) {

                    CreateFactory p1f = new Product1Factory();

                    CreateFactory p2f = new Product2Factory();

                    p1f.create(); // 产品1工厂创建产品

                    p2f.create(); // 产品2工厂创建产品

            }

    }

    优点:工厂模式可以说是简单工厂模式的进一步抽象和拓展,在保留了简单工厂的封装优点的同时,让扩展变得简单,让继承变得可行,增加了多态性的体现。

    缺点:系统类的个数将成对增加, 增加系统编译开销。增加抽象层和理解难度,增加复杂度,一个工厂只能生产一种产品,当前产品需要更换的时候还是需要修改相应的代码。

    相关文章

      网友评论

          本文标题:设计模式之 --- 工厂方法模式(Factory Method)

          本文链接:https://www.haomeiwen.com/subject/fjmfhktx.html