美文网首页
设计模式之 --- 工厂方法模式(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