美文网首页joiner
付大侠设计模式之工厂方法模式(3)

付大侠设计模式之工厂方法模式(3)

作者: 付大侠 | 来源:发表于2018-04-22 16:36 被阅读0次

    前面我们已经提到过了简单工厂模式,其缺点是不但对扩展开放了,也对修改开放了,违背了开放-封闭原则。为解决该问题,出现了工厂方法模式。

    如图1-1所示为工厂方法模式的UML类图。

    图1-1 工厂方法模式UML类图

    工厂方法模式实现时候,客户端需要决定实例化哪一个工厂来实现某类,选择判断的问题还是存在的,也就是说,工厂方法把简单工厂的内部逻辑判断转移到了客户端代码。如果要加一个功能,以前是改工厂类,现在是修改客户端。

    工厂方法模式克服了简单工厂违背开放-封闭原则的缺点,又保持了封装对象创建过程的优点。但缺点是每增加一个产品,需要加一个产品工厂的类,增加了额外的开放量。

    另外工厂方法模式还是没有避免修改客户端的代码,可以利用“反射”来解决避免分支判断的问题(后面的文章将再做研究和介绍)

    相关文章

      网友评论

        本文标题:付大侠设计模式之工厂方法模式(3)

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