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

2020-07-14  本文已影响0人  _micang

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

产品: 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

上一篇 下一篇

猜你喜欢

热点阅读