美文网首页
设计模式之 --- 简单工厂模式(Simple Factory)

设计模式之 --- 简单工厂模式(Simple Factory)

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

定义: 定义一个创建对象的接口,让其子类自己决定实例化哪一个工厂类,工厂模式使其创建过程延迟到子类进行。

产品: public interface Product {

        void show ();

产品1: class Product1 implements Product {

        public void show () {

                System.out.println ("创建产品1");

        }

}

产品2: class Product2 implements Product {

        public void show () {

                System.out.println ("创建产品2");

        }

}

生产工厂: public interface CreateFactory {

        Product create();

}

生产工厂实现: class ProductFactory implements  CreateFactory  {

        public Product create(String prdType) {

                 switch(prdType) {

                        case "prd1":

                                return new Product1 (); break;

                        case "prd2":

                                return new Product2 (); break;

                        default:

                                return null;

                }

        }

}

调用实例:

public class Test {

        public static void main(String[] args) {

                ProductFactory  pf = new ProductFactory ();

                pf.create("prd1");

        }

}

优点:1、一个调用者想创建一个对象,只要知道其名称就可以了。 2、扩展性高,如果想增加一个产品,只要扩展一个工厂类就可以。 3、屏蔽产品的具体实现,调用者只关心产品的接口。

缺点:增加新的产品需要修改工厂实现类中的switch,违背了开闭原则。类的数量主键增加,提高了系统的复杂度

与工厂方法的比对: 对象生成的规则不同, 工厂方法:工厂-产品为1:1,  简单工厂:  工厂-产品为1:n

相关文章

网友评论

      本文标题:设计模式之 --- 简单工厂模式(Simple Factory)

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