创建型模型——工厂方法模式

  开头

  上一篇我们讲到了简单工厂模式,我们知道简单工厂模式存在很大的弊端,就是系统扩展的问题,当我们添加新的产品就不得不修改简单工厂里面的方法,我们知道面向对象开放—封闭性原则,这样的改动破坏了代码的封装性。这个问题如何解决呢?就是今天我们所讲的工厂方法模式。


例子展示

   工厂方法模式—工厂不在负责产品的创建,而是给出具体工厂必须实现的接口,这样就不需要改动工厂来添加新产品。下面我们举一个制作甜品的工厂。


当系统添加新产品,利用面向对象多态性来完成系统的扩展,我们只需要定义一个具体的产品类,继承抽象产品类,一个具体产品的工厂,继承抽象工厂。不需要像简单工厂模式中那样去修改工厂类中的实现。具体图片如下



总结

工厂方法模式的主要优缺点

优点:

      (1) 客户不需要知道有没有该产品,只需要调用自己需要的具体产品以及生产具体产品的工厂即可。

      (2) 添加新产品只需要添加一个具体工厂类和具体产品类,提高了系统扩展性。 

缺点:

    添加新产品时需要添加一个具体工厂类和具体产品类,类的个数将成对增加,系统复杂度变高。 

适用场景:

 用户不需要知道有什么样的产品,只需要调用自己想要的具体产品,以及生产该产品的工厂。

 根据客户需求,抽象工厂提供一个接口或者父类,具体工厂只需要继承该父类,重写生产具体产品的方法即可


关于具体工厂的学习就先到这里,如果本品博客对小哥哥小姐姐有帮助的话,在博客右边顶一个吧,算是对博主的支持。


猜你喜欢

转载自blog.csdn.net/fjxcsdn/article/details/80302521